Как сделать левое соединение в 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.