Метод merge
Метод merge применяется к DataFrame и выполняет объединение двух таблиц по указанным столбцам или индексам.
Первым параметром передаётся таблица, которую необходимо объединить с текущей.
Параметр on задаёт имя столбца (или список имён), по которому происходит соединение.
С помощью параметра how можно управлять типом объединения: inner, outer, left или right.
Синтаксис
df.merge(right, how='inner', on=None, left_on=None, right_on=None)
Пример
Объединим две таблицы по общему столбцу 'a':
import pandas as pd
df1 = pd.DataFrame({
'a': [1, 2, 3],
'b': [10, 20, 30]
})
df2 = pd.DataFrame({
'a': [1, 2, 4],
'c': [100, 200, 400]
})
res = df1.merge(df2, on='a')
print(res)
Результат выполнения кода:
a b c
0 1 10 100
1 2 20 200
Пример
Выполним левое внешнее объединение с сохранением всех строк из левой таблицы:
import pandas as pd
df1 = pd.DataFrame({
'a': [1, 2, 3],
'b': [10, 20, 30]
})
df2 = pd.DataFrame({
'a': [1, 2, 4],
'c': [100, 200, 400]
})
res = df1.merge(df2, on='a', how='left')
print(res)
Результат выполнения кода:
a b c
0 1 10 100.0
1 2 20 200.0
2 3 30 NaN
Пример
Объединим таблицы, когда имена ключевых столбцов различаются:
import pandas as pd
df1 = pd.DataFrame({
'a': [1, 2, 3],
'b': [10, 20, 30]
})
df2 = pd.DataFrame({
'key': [1, 2, 4],
'c': [100, 200, 400]
})
res = df1.merge(df2, left_on='a', right_on='key')
print(res)
Результат выполнения кода:
a b key c
0 1 10 1 100
1 2 20 2 200
Пример
Соединим таблицы по индексам с помощью параметров left_index и right_index:
import pandas as pd
df1 = pd.DataFrame({
'b': [10, 20, 30]
}, index=[1, 2, 3])
df2 = pd.DataFrame({
'c': [100, 200, 400]
}, index=[1, 2, 4])
res = df1.merge(df2, left_index=True, right_index=True)
print(res)
Результат выполнения кода:
b c
1 10 100
2 20 200
Смотрите также
-
метод
join,
который объединяет таблицы по индексам -
метод
concat,
который склеивает таблицы по оси -
метод
combine_first,
который заполняет пропуски значениями из другой таблицы -
метод
update,
который обновляет значения в таблице