使用Pandas替换数据框列中的特定值

11

我有一个名为 "Num_of_employees" 的列的数据框 df,其中包含像 50-100、200-500 等值。我在我的数据中发现了一些问题。在员工数量应该是 1-10 的地方,数据以 10-Jan 的形式出现。同样,在应该是 11-50 的数值处,数据以 Nov-50 的形式呈现。如何使用 pandas 纠正这个问题?

1个回答

22

这种“查找和替换”的干净语法使用字典,例如

df.Num_of_employees = df.Num_of_employees.replace({"10-Jan": "1-10",
                                                   "Nov-50": "11-50"})

3
如果你有一个大型数据集,手动使用替换可能是不可能的。 - Joe T. Boka
1
@JoeR 对的!我有没有办法可以在大数据上实现? - ComplexData
2
我在超过一亿行数据上运行了这个程序,仅用了几秒钟就完成了。在我看来,这就是你的解决方案。 - piRSquared
1
@user6461192 是的。类型不能太多。你可以使用 df.Num_of_employees.unique()df.Num_of_employees.value_counts() 找到它们所有。创建一个包含所有有问题条目及其对应更正的字典。 - piRSquared
1
你可能没有将结果分配回列。df.Num_of_employees.replace({'10-Jan': '1-10', 'Nov-50': '11-50'})会显示结果,但你必须使用df.Num_of_employees = df.Num_of_employees.replace({'10-Jan': '1-10', 'Nov-50': '11-50'})来捕获它们。在写入文件之前,你可以使用print(df.to_csv())进行检查。 - piRSquared
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接