Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用示例函数时,字符串值重复_Python_Python 3.x_Pandas - Fatal编程技术网

Python 使用示例函数时,字符串值重复

Python 使用示例函数时,字符串值重复,python,python-3.x,pandas,Python,Python 3.x,Pandas,对于每个员工,都会有一个随机的子员工,在这种情况下,当我尝试运行此程序时,同一个子员工会为其他员工重复一次又一次。我需要为此做些什么?它不应该重复 将随机导入为rm 作为pd进口熊猫 将numpy导入为nm 从熊猫导入系列,数据帧 CHCbot_Emp=数据帧({'Employee_Name':['Deepak'、'Varadharajan'、'Akash'、'Jeffrin'、'Ashwini'、'Sathish'、'Vikram'、'Narasiman'、'satyavati'], ‘员工代

对于每个员工,都会有一个随机的子员工,在这种情况下,当我尝试运行此程序时,同一个子员工会为其他员工重复一次又一次。我需要为此做些什么?它不应该重复

将随机导入为rm
作为pd进口熊猫
将numpy导入为nm
从熊猫导入系列,数据帧
CHCbot_Emp=数据帧({'Employee_Name':['Deepak'、'Varadharajan'、'Akash'、'Jeffrin'、'Ashwini'、'Sathish'、'Vikram'、'Narasiman'、'satyavati'],
‘员工代码’:[‘IS4001’、‘IS4002’、‘IS4003’、‘IS4004’、‘IS4005’、‘IS4006’、‘IS4007’、‘IS4008’、‘IS4009’])
CHCbot_Emp
对于CHCbot_Emp.itertuples(index=False)中的行:
打印(行.员工\名称+“”+行.员工\代码)
打印('Hey'+行。员工名称+'!!!选择您的孩子')
随机变量=CHCbot\U Emp.sample(n=1)
打印(随机变量。员工代码+“”+随机变量。员工名称)
Dataframe.sample()
只是一种采样技术,其中n=3的样本都是唯一的。在这种情况下,您每次都生成一个n=1的样本,并且每个生成都是相互独立的,因此您不会得到唯一的项

生成非重复随机数的一种方法是使用
range(n)
创建一个列表,然后使用
random.shuffle()
洗牌列表。现在有了随机数列表,您可以使用
list.pop()

例如:

import numpy as np

from pandas import Series,DataFrame

CHCbot_Emp = DataFrame({'Employee_Name':['Deepak','Varadharajan','Akash','Jeffrin','Ashwini','Sathish','Vikram','Narasiman','satyavathi'],
                       'Employee_Code':['IS4001','IS4002','IS4003','IS4004','IS4005','IS4006','IS4007','IS4008','IS4009']})
CHCbot_Emp

l = list(range(len(CHCbot_Emp)))
np.random.shuffle(l)

for rows in CHCbot_Emp.itertuples(index=False):
    print(rows.Employee_Name+" "+rows.Employee_Code)
    print('Hey '+rows.Employee_Name+'!!! Pick your Child')
    random_Variable = CHCbot_Emp.iloc[l.pop()]
    print(random_Variable.Employee_Code+" "+random_Variable.Employee_Name)
这里我使用了
dataframe.iloc[l.pop()]
来获取随机数据帧行

另一个选项是使用而不是
.shuffle()

l = random.sample(list(range(len(CHCbot_Emp))),len(CHCbot_Emp))