繁体   English   中英

根据与另一个 dataframe 的匹配,在 dataframe 中创建新列

[英]Creating a new column in a dataframe based on matches with another dataframe

我有两个数据框:

Dataframe 1:

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

Dataframe 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

使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM