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))