用其他数据框列中的值替换数据框列中的值

时间:2020-10-08 13:35:02

标签: python pandas

让我再解释一下我的问题。我有一个ID,名称和姓氏的数据框,我们称他为df_src ex:

ID        Name       Surname
177015H   LAURE      Thomas
198786X   ANGEARD    Audrey
136235G   EYSSERIC   Laurent
198786X   ANGEARD    Audrey

在此数据框中,我有多个重复的值。由于一个人可以管理不同的人。
另一方面,我的第二个数据帧包含先前的每行,但没有重复的值+假名化数据,我们称他为df_tem ex:

ID        Name       Surname       FakeID    FakeName       FakeSurname
177015H   LAURE      Thomas        127345H   ELOR           Lori
198786X   ANGEARD    Audrey        112846X   RELARD         Pierre
136235G   EYSSERIC   Laurent       108456G   SERIC          Marc
...       ...        ...           ....      ...            ...

我想在这里完成的是用伪造值替换df_tem上与df_tem相似的所有值。例如,用127345H ELOR Lori将所有重复的177015H LAURE Thomas值替换为

我尝试使用

df_src.replace(to_replace=dfsrc['column'], value=df_tem['column'], inplace=True)

只是没有任何回报。 我已经花了好几个小时才能找到与熊猫共处的方式。

你有什么主意吗?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我将两者合并,然后重命名列:

df = df_src.merge(df_tem, on=["ID", "Name", "Surname"], how="left"
    ).drop(columns=["ID", "Name", "Surname"]
    ).rename(columns={"FakeID": "ID", "FakeName": "Name", "FakeSurname": "Surname"})