Что делает метод merge python?

Аватар пользователя Maksim Litvinov
Maksim Litvinov
29 октября 2024

Метод 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'.

1 0

Метод 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
0 0
Познакомьтесь с основами Python бесплатно

Похожие вопросы