簡體   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