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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.