Создание нового столбца во фрейме данных на основе совпадений с другим фреймом данных

#python #pandas

#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
  

Есть ли способ создать новый столбец в фрейме данных 1 на основе совпадений строк как в столбце ID, так и в столбце Month в фрейме данных 2?

Чтобы конечный результат выглядел как:

   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:

Уточните с помощью 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
  

Комментарии:

1. @MalikM yw 🙂 счастливого кодирования ~