我正在尝试将列中的差异从一个df修正为另一列中的差异。 这些表也没有排序。 我如何使用python做到这一点。示例:
df1
Age Name
40 Sid Jones
50 Alex, Bot
32 Tony Jar
65 Fred, Smith
24 Brad, Mans
df2
Age Name
24 Brad Mans
32 Tony Jar
40 Sid Jones
65 Fred Smith
50 Alex Bot
我需要替换df2中的值以匹配df1中的值,如您在示例中看到的那样,名称中的差异是逗号。
df2的预期结果:
Age Name
24 Brad, Mans
32 Tony Jar
40 Sid Jones
65 Fred, Smith
50 Alex, Bot
应该更改df2中的值以匹配df1s值。
答案 0 :(得分:2)
在df1
中创建一列,并从Name
列中删除逗号
df1['Name_nocomma'] = df1.Name.str.replace(',', '')
使用df1
和df2
将Name_nocomma
合并到Name
以得到更正的 Name
,以创建{{ 1}}
df2
使用Combine_first将df2_out = df2.merge(df1, left_on='Name', right_on='Name_nocomma', how='left')[['Age_x', 'Name_x', 'Name_y']]
和Name_y
合并到新列Name_x
Name
删除/重命名中间列
df2_out['Name'] = df2_out.Name_y.combine_first(df2_out.Name_x)
答案 1 :(得分:0)