根据与另一个数据框的匹配在数据框中创建新列

时间:2020-08-14 01:46:03

标签: python pandas

我有两个数据框:

数据框1:

ID  MONTH
1   2010-01
1   2010-03
1   2010-04
2   2010-01
3   2010-01
3   2010-02

数据框2:

ID  MONTH
1   2010-01
3   2010-02

有没有一种方法可以根据dataframe2中ID和Month列上的行匹配在Dataframe 1中创建新列?

这样最终结果将如下所示:

  ID    MONTH Match
0  1  2010-01     Y
1  1  2010-03     N
2  1  2010-04     N
3  2  2010-01     N
4  3  2010-01     N
5  3  2010-02     Y

1 个答案:

答案 0 :(得分:3)

merge + indicator进行检查,返回both将是Yesleft_only将是No

s=df1.merge(df2,indicator=True,how='left')
s['Match']=s.pop('_merge').map({'both':'Y','left_only':'N'})
s
Out[18]: 
   ID    MONTH Match
0   1  2010-01     Y
1   1  2010-03     N
2   1  2010-04     N
3   2  2010-01     N
4   3  2010-01     N
5   3  2010-02     Y