【问题标题】:What is the best way to swap values in Python pandas DataFrame to clean up the data在 Python pandas DataFrame 中交换值以清理数据的最佳方法是什么
【发布时间】:2017-05-25 08:01:45
【问题描述】:

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

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

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

【问题讨论】:

    标签: python pandas data-cleaning


    【解决方案1】:

    我认为你可以使用replace by dict

    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
    

    【讨论】:

    • 谢谢!这是人们通常会这样做的方式还是他们更好的方法?
    • 我认为这通常是人们会这样做的方式。感谢您的接受!
    • @jezrael 的方法是完成您需要的最佳方式。使用带有map 的字典是另一种选择。但是请注意,您必须包含所有字符串(包括正确的字符串)以避免使用map 方法丢失值。有时这比replace 更适合用例。但不是在这里。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 2021-04-23
    相关资源
    最近更新 更多