我有两个数据框:
数据框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
答案 0 :(得分:3)
用merge
+ indicator
进行检查,返回both
将是Yes
,left_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