Учимся объединять таблицы в 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 "

Substring: Как использовать функцию вырезки подстроки в различных языках программирования
If Name Main: A Comprehensive Guide for Python Beginners
Streamreader C – программа для чтения файлов в языке С#
Div class: что это такое и зачем нужен?
Array to String Java: как преобразовать массив в строку
Метод fetch_assoc() в библиотеке MySQLi
Python venv activate
Как указать путь к файлу в Python
Тестирование регулярных выражений
Onetoone - эффективное обучение и тренировки с преподавателями