我正在尝试根据其他数据框中的值替换数据框中的值。请假设两个数据框中还有其他列。一个简单的例子:
df1
id name ......
123 city a
456 city b
789 city c
789 city c
456 city b
123 city a
等等等等
df2
id name ......
123 City A
456 City B
789 City C
因此,产生的df应该是:
id name ......
123 City A
456 City B
789 City C
789 City C
456 City B
123 City A
我在熊猫运气中尝试了一些合并选项。有没有一种简单的方法可以根据匹配将第一个数据帧中的所有值替换为第二个数据帧中的值id
?
任何帮助表示赞赏
你可以做
df1['New name']=df1.id.map(df2.set_index('id').name)
更新资料
namediff=df1.columns.difference(df2.columns).tolist()+['id']
df3=df2.drop(df2.columns.difference(df1.columns),axis=1)
df1=df1[namediff].merge(df3,on='id')
要么
df1=df1.set_index('id')
df1.update(df2.set_index('id'))
df1.reset_index(inplace=True)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句