Учимся объединять таблицы в Python с помощью функции Pandas Merge

Pandas merge - это функция, позволяющая объединять два или более объектов DataFrame на основе одного или нескольких столбцов. Эта функция может быть использована для соединения двух или более таблиц по определенным условиям.

Пример использования:

Для начала, импортируем модуль pandas и создадим два DataFrame:

python
import pandas as pd
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})

df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})

Теперь, объединим эти два DataFrame по ключу:

python
merged_df = pd.merge(df1, df2, on='key')

merged_df = pd.merge(df1, df2, on='key')

В результате получаем новый DataFrame, содержащий только строки, для которых значение ключа присутствует в обоих исходных DataFrame df1 и df2. Таким образом, в результате получим DataFrame, содержащий только строки с ключами 'B' и 'D':


  key  value_x  value_y
0   B        2        5
1   D        4        6

В случае, если столбцы с ключом называются по-разному в обоих DataFrame, можно применить параметры left_on и right_on:

python
df1 = pd.DataFrame({'left_key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'right_key': ['B', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})
merged_df = pd.merge(df1, df2, left_on='left_key', right_on='right_key')

merged_df = pd.merge(df1, df2, left_on='left_key', right_on='right_key')

Если же нужно объединить DataFrame с использованием нескольких ключей, можно передать список ключей в параметре ‘on’:

python
df1 = pd.DataFrame({'key1': ['A', 'B', 'C', 'D'], 'key2': ['X', 'Y', 'Z', 'X'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key1': ['B', 'D', 'E', 'F'], 'key2': ['Y', 'X', 'Z', 'A'], 'value': [5, 6, 7, 8]})
merged_df = pd.merge(df1, df2, on=['key1', 'key2'])

merged_df = pd.merge(df1, df2, on=['key1', 'key2'])

Это объединит DataFrame, используя оба ключей key1 и key2 для сопоставления строк:


  key1 key2  value_x  value_y
0    D    X        4        6

Также есть несколько вариантов соединения (join), такие как inner, outer, left и right, которые соответствуют соединению по общим ключам, соединению по всем строкам, левому и правому соединению. Каждый из этих вариантов может быть реализован, определив параметр how в функции pd.merge:

python
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})
#inner join
merged_df = pd.merge(df1, df2, on='key', how='inner')
#left join
merged_df = pd.merge(df1, df2, on='key', how='left')
#right join
merged_df = pd.merge(df1, df2, on='key', how='right')
#outer join
merged_df = pd.merge(df1, df2, on='key', how='outer')

merged_df = pd.merge(df1, df2, on='key', how='outer')

В итоге, функция pandas merge является очень мощным инструментом для соединения данных из нескольких источников или таблиц в более единый и полный DataFrame. Она позволяет задавать различные параметры для соединения и легко применять разные операции за счет разных возможностей параметров join и how.

Похожие вопросы на: "pandas merge "

Командная строка от имени администратора: как использовать и настроить
Arduino Modbus Slave Invalid CRC - Ошибка при передаче данных
Discover the Power of Python And Or: Your Comprehensive Resource for Programming Success
Deepcopy Python: A Comprehensive Guide to Understanding It
Как создать зачеркнутый текст в CSS: пошаговый гайд
Guid C: что это такое и как его использовать в программировании
NSFW Twitter: лучшие аккаунты и порно-контент на социальной платформе
Unity Particle System
Concurrent - одновременное выполнение нескольких задач
<h1>Math Exp - решайте математические выражения онлайн