Поиск по сайту:

Узнайте, как объединить фреймы данных в Python


Если вы работаете с несколькими связанными DataFrame, вы, вероятно, в какой-то момент захотите присоединиться к ним. Посмотрите, как может помочь библиотека pandas.

Если вы используете Python даже для самых простых задач, вы, вероятно, осознаете важность его сторонних библиотек. Библиотека Pandas с отличной поддержкой DataFrames является одной из таких библиотек.

Вы можете импортировать файлы нескольких типов в DataFrames Python и создавать различные версии для хранения разных наборов данных. Импортировав данные с помощью DataFrames, вы можете объединить их для выполнения детального анализа.

Разбираемся с основами

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

Создайте DataFrames в Python

В качестве первого шага импортируйте библиотеку Pandas в файл Python. Pandas — это сторонняя библиотека, которая обрабатывает DataFrames в Python. Вы можете использовать оператор import для использования библиотеки следующим образом:

import pandas as pd

Вы можете присвоить псевдоним имени библиотеки, чтобы сократить ссылки на код.

Вам необходимо создать словари, которые можно преобразовать в DataFrames. Для достижения наилучших результатов создайте две словарные переменные — dict1 и dict2— для хранения определенных фрагментов информации:

dict1 = {"user_id": ["001", "002", "003", "004", "005"],
        "FName": ["John", "Brad", "Ron", "Roald", "Chris"],
        "LName": ["Harley", "Cohen", "Dahl", "Harrington", "Kerr-Hislop"]}
 
dict2 = {"user_id": ["001", "002", "003", "004"], "Age": [15, 28, 34, 24]}

Помните, что вам необходимо иметь общий элемент в обоих значениях словаря, чтобы он выступал в качестве первичного ключа для последующего объединения ваших DataFrames.

Преобразуйте свои словари в фреймы данных

Чтобы преобразовать значения словаря в DataFrames, вы можете использовать следующий метод:

df1 = pd.DataFrame(dict1)
df2 = pd.DataFrame(dict2)

Некоторые IDE позволяют проверять значения в DataFrame, обращаясь к функции DataFrame и нажимая Выполнить/Выполнить. Существует множество Python-совместимых IDE, поэтому вы можете выбрать ту, которую вам легче всего изучить.

Как только вы будете удовлетворены содержимым ваших DataFrames, вы можете перейти к этапу слияния.

Объединение кадров с помощью функции слияния

Функция слияния — это первая функция Python, которую вы можете использовать для объединения двух DataFrames. Эта функция принимает следующие аргументы по умолчанию:

pd.merge(DataFrame1, DataFrame2, how= type of merge)

Где :

  • pd — это псевдоним библиотеки Pandas.
  • merge — функция, объединяющая DataFrames.
  • DataFrame1 и DataFrame2 — это два DataFrame, которые нужно объединить.
  • как определяет тип слияния.

Доступны некоторые дополнительные необязательные аргументы, которые вы можете использовать, если у вас сложная структура данных.

Вы можете использовать разные значения параметра How, чтобы определить тип выполняемого слияния. Эти типы слияний будут вам знакомы, если вы использовали SQL для объединения таблиц базы данных.

Левое слияние

Левый тип слияния сохраняет значения первого DataFrame без изменений и извлекает соответствующие значения из второго DataFrame.

Правое слияние

Правильный тип слияния сохраняет значения второго DataFrame нетронутыми и извлекает соответствующие значения из первого DataFrame.

Внутреннее слияние

Тип внутреннего слияния сохраняет совпадающие значения из обоих DataFrames и удаляет несовпадающие значения.

Внешнее слияние

Внешний тип слияния сохраняет все совпадающие и несовпадающие значения и объединяет фреймы данных вместе.

Как использовать функцию Concat

Функция concat — более гибкий вариант по сравнению с некоторыми другими функциями слияния Python. С помощью функции concat вы можете комбинировать DataFrames по вертикали и по горизонтали.

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

concat(dataframes, axis=0, join='outer'/’inner’)

Где :

  • concat — это функция, которая объединяет DataFrames.
  • dataframes — это последовательность DataFrames, которую необходимо объединить.
  • ось представляет направление конкатенации: 0 – горизонтальное, 1 – вертикальное.
  • join определяет внешнее или внутреннее соединение.

Используя два приведенных выше DataFrame, вы можете опробовать функцию concat следующим образом:

# define the dataframes in a list format
df_merged_concat = pd.concat([df1, df2])
 
# print the results of the Concat function
print(df_merged_concat)

Отсутствие аргументов оси и соединения в приведенном выше коде объединяет два набора данных. Результирующий вывод содержит все записи, независимо от статуса совпадения.

Аналогичным образом вы можете использовать дополнительные аргументы для управления направлением и выводом функции concat.

Чтобы управлять выводом со всеми совпадающими записями:

# Concatenating all matching values between the two dataframes based on their columns
df_merged_concat = pd.concat([df1, df2], axis=1, join = 'inner')
 
print(df_merged_concat)

Результат содержит все совпадающие значения только между двумя DataFrames.

Объединение фреймов данных с Python

DataFrames являются неотъемлемой частью Python, учитывая их гибкость и функциональность. Учитывая их многогранное использование, вы можете широко использовать их для выполнения различных задач с максимальной легкостью.

Если вы все еще изучаете фреймы данных Python, попробуйте импортировать несколько файлов Excel, а затем объединить их с помощью разных подходов.

Статьи по данной тематике: