【发布时间】:2018-06-24 11:43:32
【问题描述】:
我想根据(df2.Name1, df2.Name2) 中的映射表覆盖我的df1.Name 值。但是,df1.Name 中并非所有值都存在于df2.Name1 中
df1:
Name
Alex
Maria
Marias
Pandas
Coala
df2:
Name1 Name2
Alex Alexs
Marias Maria
Coala Coalas
预期结果:
Name
Alexs
Maria
Maria
Pandas
Coalas
我在网上尝试了几种解决方案,例如使用地图功能。通过在字典中打开df2,我正在使用df1.Name = df1.Name.map(Dictionary),但这将导致nan 对于不在df2 中的所有值,如下所示。
Name
Alexs
Maria
Maria
NAN
Coalas
我不确定如何使用 IF 语句仅替换 df2 中确实存在的语句,并按照 df1 保留其余语句。
我还尝试使用if 语句创建一个函数,但失败了。
我该如何解决这个问题?
【问题讨论】:
-
预期结果是更新的 df1.Name 数据框
标签: python pandas dictionary dataframe matching