Что делает метод merge python?
Метод merge()
в pandas DataFrame
используется для объединения двух или более DataFrame
по определенному ключу или набору ключей. Он работает аналогично SQL JOIN и позволяет объединять DataFrame
на основе общего набора данных.
Метод merge()
принимает несколько параметров:
right
: DataFrame, который будет объединен с текущим DataFrame.how
: Метод объединения, который может принимать значения 'inner', 'outer', 'left', 'right'. По умолчанию 'inner', что означает, что только строки, имеющие совпадающие ключи в обоих DataFrame, будут объединены.on
: Ключ или набор ключей, по которым будут объединены DataFrame. Если не указано, будет использован ключ по умолчанию.indicator
: Если установлено вTrue
, в результат будет добавлен столбец, указывающий, откуда взята каждая строка. По умолчаниюFalse
.
Вот пример кода, который демонстрирует использование метода merge() в pandas.DataFrame:
import pandas as pd
# Создаем два DataFrame
df1 = pd.DataFrame({
'Key': ['A', 'B', 'C'],
'Value': [1, 2, 3]
})
df2 = pd.DataFrame({
'Key': ['B', 'C', 'D'],
'Value': [4, 5, 6]
})
# Объединяем два DataFrame по ключу 'Key' с помощью метода 'inner'
merged_df = pd.merge(df1, df2, on='Key', how='inner')
print(merged_df)
В этом примере мы создаем два DataFrame df1
и df2
, а затем объединяем их по ключу 'Key' с помощью метода merge()
. Мы указываем, что хотим использовать метод 'inner' для объединения, что означает, что только строки с совпадающими ключами в обоих DataFrame будут объединены. Результат - новый DataFrame merged_df
, который содержит строки из обоих исходных DataFrame, у которых совпадают ключи 'Key'.
Метод merge() в Python работает по принципу операции JOIN в SQL. Он объединяет два или более фрейма данных на основе общих столбцов.
С помощью merge()
можно выполнить пять типа объединений: «INNER», «LEFT», «RIGHT», «OUTER» и «CROSS»
- left. Использует только ключи из левого фрейма, подобно левому внешнему соединению в SQL. Сохраняет порядок ключей.
- right. Использует только ключи из правого фрейма, подобно правому внешнему соединению в SQL. Сохраняет порядок ключей.
- outer. Использует объединение ключей из обоих фреймов, подобно полному внешнему соединению в SQL. Сортирует ключи лексикографически.
- inner. Использует пересечение ключей из обоих фреймов, подобно внутреннему соединению в SQL. Сохраняет порядок левых ключей.
- cross. Создаёт перекрёстное произведение из обоих фреймов, сохраняет порядок левых ключей.
Метод возвращает новый фрейм данных, при этом левый и правый фреймы данных не изменяются.
Пример:
import pandas as pd
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
'B': ['B0', 'B1', 'B2']},
index=['K0', 'K1', 'K2'])
df2 = pd.DataFrame({'C': ['C0', 'C2', 'C3'],
'D': ['D0', 'D2', 'D3']},
index=['K0', 'K2', 'K3'])
result = pd.merge(df1, df2, left_index=True, right_index=True, how='outer')
print(result)
# K0 A0 B0 C0 D0
# K1 A1 B1 NaN NaN
# K2 A2 B2 C2 D2
# K3 NaN NaN C3 D3