Метод join
Метод join применяется к DataFrame
и объединяет его столбцы со столбцами другого
DataFrame. Основное отличие от merge
в том, что join по умолчанию выполняет
объединение по индексам. Первым параметром
передаётся другой DataFrame. Параметр
how определяет тип объединения: left,
right, inner или outer.
Параметр on позволяет указать столбец
для объединения, если индексы не используются.
Синтаксис
df.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False)
Пример
Объединим две таблицы по индексам с помощью левого соединения:
import pandas as pd
df1 = pd.DataFrame({
'a': [1, 2, 3],
'b': [10, 20, 30]
}, index=[0, 1, 2])
df2 = pd.DataFrame({
'c': [100, 200, 300],
'd': [1000, 2000, 3000]
}, index=[0, 1, 2])
res = df1.join(df2)
print(res)
Результат выполнения кода:
a b c d
0 1 10 100 1000
1 2 20 200 2000
2 3 30 300 3000
Пример
Теперь выполним внутреннее соединение, чтобы оставить только совпадающие индексы:
import pandas as pd
df1 = pd.DataFrame({
'a': [1, 2, 3],
'b': [10, 20, 30]
}, index=[0, 1, 2])
df2 = pd.DataFrame({
'c': [100, 200, 300],
'd': [1000, 2000, 3000]
}, index=[1, 2, 3])
res = df1.join(df2, how='inner')
print(res)
Результат выполнения кода:
a b c d
1 2 20 200 2000
2 3 30 300 3000
Пример
Объединим таблицы по указанному столбцу вместо
индекса, используя параметр on:
import pandas as pd
df1 = pd.DataFrame({
'key': ['x', 'y', 'z'],
'a': [1, 2, 3]
})
df2 = pd.DataFrame({
'key': ['x', 'y', 'z'],
'b': [10, 20, 30]
})
res = df1.join(df2.set_index('key'), on='key')
print(res)
Результат выполнения кода:
key a b
0 x 1 10
1 y 2 20
2 z 3 30
Пример
Используем суффиксы для различения столбцов с одинаковыми именами:
import pandas as pd
df1 = pd.DataFrame({
'a': [1, 2, 3],
'b': [10, 20, 30]
}, index=[0, 1, 2])
df2 = pd.DataFrame({
'a': [100, 200, 300],
'b': [1000, 2000, 3000]
}, index=[0, 1, 2])
res = df1.join(df2, lsuffix='_left', rsuffix='_right')
print(res)
Результат выполнения кода:
a_left b_left a_right b_right
0 1 10 100 1000
1 2 20 200 2000
2 3 30 300 3000
Смотрите также
-
метод
merge,
который объединяет таблицы по столбцам -
метод
combine,
который объединяет таблицы с помощью функции -
метод
combine_first,
который заполняет пропуски значениями из другой таблицы -
метод
align,
который выравнивает индексы двух таблиц