В чем разница между объединением и объединением в Pandas?

Опубликовано: 29 Января, 2022

Pandas предоставляет различные возможности для простого комбинирования Series или DataFrame с различными видами логики набора для индексов и функциональных возможностей реляционной алгебры в случае операций типа соединения / слияния.

Как соединение, так и слияние могут использоваться для объединения двух фреймов данных, но метод соединения объединяет два фрейма данных на основе их индексов, тогда как метод слияния более универсален и позволяет нам указывать столбцы рядом с индексом для объединения для обоих фреймов данных.

Let’s first create two dataframes to show the effect of the two methods.

Python3

import pandas as pd
  
# Creating the two dataframes
left = pd.DataFrame([["a", 1], ["b", 2]], list("XY"), list("PQ"))
right = pd.DataFrame([["c", 3], ["d", 4]], list("XY"), list("PR"))

Выход:

Теперь давайте посмотрим, как эти два метода поочередно влияют на фреймы данных.

присоединиться

Метод соединения принимает два фрейма данных и объединяет их в их индексы (технически вы можете выбрать столбец для присоединения для левого фрейма данных). Если есть перекрывающиеся столбцы, объединение потребует, чтобы вы добавили суффикс к имени перекрывающегося столбца из левого фрейма данных. Наши два фрейма данных имеют перекрывающееся имя столбца P.

Example :

Python3

joined_df = left.join(right, lsuffix="_")
print(joined_df)

Выход :

Обратите внимание , что индекс сохраняются и у нас есть четыре columns.nWe может также отдельно указать конкретный столбец левой dataframe с параметром , чтобы использовать как присоединиться ключом, но он все равно будет использовать индекс справа.

Example :

Python3

joined_df2 = left.reset_index().join(right, on="index", lsuffix="_")
print(joined_df2)

Выход :

идти

На базовом уровне слияние более или менее делает то же самое, что и соединение. Оба метода используются для объединения двух фреймов данных вместе, но слияние более универсально, оно требует указания столбцов в качестве ключа слияния. Мы можем указать перекрывающиеся столбцы с параметром on или отдельно указать его с помощью параметров left_on и right_on.

Example :

Python3

merged_df = left.merge(right, on="P", how="outer")
print(merged_df)

Выход :

Обратите внимание, что метод слияния уничтожил индекс.

Мы можем явно указать, что мы объединяемся на основе индекса с параметром left_index или right_index .

Example :

Python3

merged_df = left.merge(right, left_index=True,
                       right_index=True, suffixes=["_", ""])
print(merged_df)

Выход :

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.