Работа с данными в Python часто включает в себя использование библиотеки Pandas, которая предоставляет мощный и гибкий инструмент для анализа данных. Одним из самых распространенных заданий при работе с данными является объединение различных наборов данных. Для этого Pandas предлагает несколько методов, включая merge, join и concat.
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Основы слияния данных
В Pandas слияние данных можно осуществить с помощью функции merge()
. Она может выполнять четыре типа объединений: «INNER», «LEFT», «RIGHT» и «FULL OUTER».
Пример использования функции merge()
:
import pandas as pd df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2']}, index=['K0', 'K1', 'K2']) df2 = pd.DataFrame({'C': ['C0', 'C2', 'C3'], 'D': ['D0', 'D2', 'D3']}, index=['K0', 'K2', 'K3']) result = pd.merge(df1, df2, left_index=True, right_index=True, how='outer')
Добавление NaN для отсутствующих строк после слияния
При выполнении объединения типа «LEFT», «RIGHT» или «FULL OUTER» могут появиться значения NaN. Это происходит, когда данные в ключевых столбцах не совпадают. В этом случае Pandas автоматически заполняет отсутствующие значения NaN.
Удаление NaN после слияния
После слияния можно использовать функцию dropna()
для удаления строк, содержащих значения NaN.
Пример:
result = result.dropna()
Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.
Слияние по индексу
Pandas позволяет выполнять слияние как по столбцам, так и по индексу. Для слияния по индексу можно использовать параметры left_index=True
и/или right_index=True
.
Объединение нескольких DataFrame
Для объединения нескольких DataFrame можно использовать функцию concat()
. Она принимает список DataFrame и объединяет их вместе.
Пример:
result = pd.concat([df1, df2, df3])
Перекрестное объединение с Pandas
Перекрестное объединение, или cartesian product, можно выполнить с помощью функции merge()
с параметром how='cross'
.
На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.
Разница между merge, join, concat и update
merge()
используется для объединения двух DataFrame по общему ключу.join()
используется для объединения двух DataFrame по индексу.concat()
используется для объединения двух или более DataFrame вместе вдоль оси.update()
используется для модификации DataFrame путем замены старых значений новыми значениями.
В зависимости от задачи, может быть использован один или несколько из этих методов.
Добавить комментарий