我正在制作一个虚拟的数据集,其中列出了作为用户id的公司列表,每个公司发布的工作作为job id,而c id作为候选人id。 我已经完成了前两个步骤,我的数据集如下所示
user_id job_id
0 HP HP2
1 Microsoft Microsoft4
2 Accenture Accenture2
3 HP HP0
4 Dell Dell4
5 FIS FIS1
6 HP HP0
7 Microsoft Microsoft4
8 Dell Dell2
9 Accenture Accenture0
它们也被洗牌。现在我希望向这个数据集中添加一个随机的候选id,这样就不会对特定的作业id重复任何c\U id
我的方法如下。 作业列表是所有作业ID的列表
for i in range(50): l = list(range(0,len(df[df['job_id'] == joblist[i]]))) random.shuffle(l) df['c_id'][df['job_id'] == joblist[i]] = l
之后我把它测试为
len(df['c_id'][df['job_id'] == joblist[0]])
输出=168
df['c_id'][df['job_id'] == joblist[0]].nunique()
输出=101
所有的价值观都是如此。我重新检查了每个步骤后l
的唯一性及其168个唯一值。
我做错什么了
唯一的id由基本的
pd
函数提供,所以您不需要任何花哨的东西。解决方案的效率因df
的大小而异进一步阅读: Q: [Pandas] How to efficiently assign unique ID to individuals with multiple entries based on name in very large df
How to assign a unique ID to detect repeated rows in a pandas dataframe?
相关问题 更多 >
编程相关推荐