В чем разница между объединением и объединением в Pandas?
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. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.