Python random.shuffle 不会为数据框提供精确的唯一值

我正在制作一个公司列表的虚拟数据集作为 user_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,即不会将 c_id 重复到特定的 job_id。


我的方法如下。joblist 是所有 job_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 个唯一值。我在这里做错了什么?


隔江千里
浏览 152回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python