在Python pandas DataFrame中交换值以清理数据的最佳方法是什么

时间:2017-01-10 18:05:42

标签: python pandas data-cleaning

我有一个DataFrame,其中列'名称'有一些错误。我创建了一个字典,其中键的拼写错误,拼写的值正确。用正确的拼写替换错误拼写的最佳方法是什么?这就是我所做的。

for incorrect, correct in incorrect_to_correct.items():
    mask = s_df['Name'] == incorrect
    s_df.loc[mask, 'Name'] = correct

有更好的方法吗?有人告诉我,如果你正在使用带有熊猫的for循环,你应该重新考虑你在做什么?有没有更好的方法来清理数据?这种字典方法"错误"?我是熊猫新手,任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:5)

我认为您可以dict使用replace

df.Name = df.Name.replace(incorrect_to_correct)

样品:

df = pd.DataFrame({'Name' : ["john","mary","jon", "mar"]})
print (df)
   Name
0  john
1  mary
2   jon
3   mar

incorrect_to_correct = {'jon':'john', 'mar':'mary'}

df.Name = df.Name.replace(incorrect_to_correct)
print (df)
   Name
0  john
1  mary
2  john
3  mary