pandas通过比较两个数据帧来创建一个新列

时间:2017-12-14 19:55:16

标签: python pandas

我有两个数据帧,df1和df2。

DF1:

ID     Label
1      a
2      b
5      c

DF2:

ID
1
2
3

我想创建一个新列"标签"在df2中通过比较两个数据帧。如果id匹配,则df2中的label应等于df1中的label。如果在df1中没有出现id,我想要0.所以最终的df2看起来像这样:

ID     Label
1      a
2      b
3      0

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用map,然后将NaN替换为fillna

df2['Label'] = df2['ID'].map(df1.set_index('ID')['Label']).fillna(0)
print (df2)
   ID Label
0   1     a
1   2     b
2   3     0