asyaevloeva
@asyaevloeva

Как сделать left join на pandas?

5f64afe514e29124687592.png

у меня есть df1 и df2 датафреймы
как их смержить, чтобы получить df в которой есть только те значения которые есть в df1, но нет в df2?

как сделать вот это на питоне?
5f64b0a043514078551084.png
  • Вопрос задан
  • 72 просмотра
Решения вопроса 2
@ScriptKiddo
Курим доки
https://pandas.pydata.org/docs/user_guide/merging.html

LEFT JOIN

In [42]: left = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'],
   ....:                      'key2': ['K0', 'K1', 'K0', 'K1'],
   ....:                      'A': ['A0', 'A1', 'A2', 'A3'],
   ....:                      'B': ['B0', 'B1', 'B2', 'B3']})
   ....: 

In [43]: right = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'],
   ....:                       'key2': ['K0', 'K0', 'K0', 'K0'],
   ....:                       'C': ['C0', 'C1', 'C2', 'C3'],
   ....:                       'D': ['D0', 'D1', 'D2', 'D3']})
   ....: 

In [44]: result = pd.merge(left, right, how='left', on=['key1', 'key2'])


5f64b1d682a67686573021.png


"LEFT ONLY JOIN"

import pandas as pd
key = 'key'

left = pd.DataFrame({key: ['1', '2', '3', '4']})

right = pd.DataFrame({key: ['5', '4', '3', '2']})

df = pd.merge(left, right, on=key, how="outer", indicator=True)
print('Merged')
print(df)
df = df[df['_merge'] == 'left_only']
print('Result')
print(df)


Merged
  key      _merge
0   1   left_only
1   2        both
2   3        both
3   4        both
4   5  right_only
Result
  key     _merge
0   1  left_only
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 130 000 ₽
deeplay Новосибирск
от 130 000 ₽
Enjoy PRO Санкт-Петербург
от 140 000 до 180 000 ₽
26 окт. 2020, в 13:50
5000 руб./за проект
26 окт. 2020, в 13:47
2000 руб./за проект
26 окт. 2020, в 13:38
1500 руб./за проект