Как сделать левое соединение в Pandas (с примером)


Вы можете использовать следующий базовый синтаксис для выполнения левого соединения в pandas:

import pandas as pd

df1.merge(df2, on='column_name', how='left')

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: как сделать левое соединение в Pandas

Предположим, у нас есть следующие два кадра данных pandas, которые содержат информацию о различных баскетбольных командах:

import pandas as pd

#create DataFrame
df1 = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
 'points': [18, 22, 19, 14, 14, 11, 20, 28]})

df2 = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'G', 'H'],
 'assists': [4, 9, 14, 13, 10, 8]})

#view DataFrames
print(df1)

 team points
0 A 18
1 B 22
2 C 19
3 D 14
4 E 14
5 F 11
6 G 20
7 H 28

print(df2)

 team assists
0 A 4
1 B 9
2 C 14
3 D 13
4 G 10
5 H 8

Мы можем использовать следующий код для выполнения левого соединения, сохраняя все строки из первого фрейма данных и добавляя любые столбцы, которые совпадают на основе столбца команды во втором фрейме данных:

#perform left join
df1.merge(df2, on='team', how='left')

 team points assists
0 A 18 4.0
1 B 22 9.0
2 C 19 14.0
3 D 14 13.0
4 E 14 NaN
5 F 11 NaN
6 G 20 10.0
7 H 28 8.0

Каждая команда из левого кадра данных ( df1 ) возвращается в объединенный кадр данных, и возвращаются только строки в правом кадре данных ( df2 ), которые соответствуют имени команды в левом кадре данных.

Обратите внимание, что две команды в df2 (команды E и F), которые не соответствуют имени команды в df1, просто возвращают значение NaN в столбце Assets объединенного DataFrame.

Обратите внимание, что вы также можете использовать pd.merge() со следующим синтаксисом, чтобы вернуть точно такой же результат:

#perform left join
pd.merge(df1, df2, on='team', how='left')


 team points assists
0 A 18 4.0
1 B 22 9.0
2 C 19 14.0
3 D 14 13.0
4 E 14 NaN
5 F 11 NaN
6 G 20 10.0
7 H 28 8.0

Обратите внимание, что этот объединенный DataFrame совпадает с кадром из предыдущего примера.

Примечание.Полную документацию по функции слияния можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

Как преобразовать индекс Pandas в список
Как преобразовать столбцы Pandas DataFrame в int
Как добавить несколько столбцов в Pandas DataFrame