Pandas Join и Merge: в чем разница?


Функции join() и merge() можно использовать для объединения двух фреймов данных pandas.

Вот основное различие между двумя функциями:

  • Функция join() объединяет два кадра данных по индексу.
  • Функция merge() объединяет два кадра данных по любому указанному вами столбцу.

Эти функции используют следующий базовый синтаксис:

#use join() to combine two DataFrames by index
df1.join(df2)

#use merge() to combine two DataFrames by specific column name
df1.merge(df2, on='column_name')

В тех случаях, когда вы знаете, что хотите соединить два DataFrames по индексу, можно использовать функцию join() для экономии ввода.

В следующих примерах показано, как использовать каждую функцию на практике.

Пример 1: Как использовать функцию join()

В следующем коде показано, как использовать функцию join() для объединения двух фреймов данных:

import pandas as pd

#create two DataFrames
df1 = pd.DataFrame({'name': ['A', 'B', 'C'], 'points': [8, 12, 19]}).set_index('name')
df2 = pd.DataFrame({'name': ['A', 'B', 'C'], 'steals': [4, 5, 2]}).set_index('name')

#view two DataFrames
print(df1); print(df2)

 points steals
name name
A 8 A 4
B 12 B 5
C 19 C 2

#use join() function to join together two DataFrames
df1.join(df2)

 points steals
name 
A 8 4
B 12 5
C 19 2

По умолчанию функция join() объединила два кадра данных с помощью столбца индекса.

Пример 2: Как использовать функцию merge()

В следующем коде показано, как использовать функцию merge() для объединения двух фреймов данных:

import pandas as pd

#create two DataFrames
df1 = pd.DataFrame({'name': ['A', 'B', 'C'], 'points': [8, 12, 19]}).set_index('name')
df2 = pd.DataFrame({'name': ['A', 'B', 'C'], 'steals': [4, 5, 2]}).set_index('name')

#view two DataFrames
print(df1); print(df2)

 points steals
name name
A 8 A 4
B 12 B 5
C 19 C 2

#use join() function to join together two DataFrames
df1.merge(df2, on='name')

 points steals
name 
A 8 4
B 12 5
C 19 2

Обратите внимание, что функция слияния () вернула точно такой же результат, но нам пришлось явно указать pandas присоединиться к кадрам данных, используя столбец «имя».

Дополнительные ресурсы

Полную онлайн-документацию по функциям join() и merge() можно найти здесь:

Документация для функции join()
Документация для функции merge()

В следующих руководствах объясняется, как выполнять другие распространенные функции в pandas:

Как добавить строки в Pandas DataFrame
Как добавить строку заголовка в Pandas DataFrame
Как получить первую строку Pandas DataFrame
Как получить первый столбец Pandas DataFrame