PD Merge: Simplifying Your Data Merging Process
pd merge - это функция merge, которая является одной из основных функций библиотеки pandas для объединения датафреймов по заданным столбцам. Функция merge можно использовать для объединения двух датафреймов на основе одного или нескольких столбцов.
Пример:
Имеются два датафрейма df1 и df2, каждый из которых содержит информацию о заказах в интернет-магазинах:
python
import pandas as pd
df1 = pd.DataFrame({'заказ': [101, 102, 103, 104],
'клиент': ['Иван', 'Петр', 'Сергей', 'Мария'],
'город': ['Москва', 'Санкт-Петербург', 'Екатеринбург', 'Новосибирск']})
df2 = pd.DataFrame({'заказ': [101, 102, 103, 104],
'дата': ['2021-01-01', '2021-01-05', '2021-01-10', '2021-01-15'],
'стоимость': [1000, 2000, 3000, 4000]})
В датафрейме df1 содержится информация о клиентах и городах, в которых был сделан заказ, а в датафрейме df2 - информация о датах заказов и их стоимости.
Для того чтобы объединить эти два датафрейма на основе столбца "заказ", можно воспользоваться функцией merge:
python
df = pd.merge(df1, df2, on='заказ')
print(df)
Результат:
python
заказ клиент город дата стоимость
0 101 Иван Москва 2021-01-01 1000
1 102 Петр Санкт-Петербург 2021-01-05 2000
2 103 Сергей Екатеринбург 2021-01-10 3000
3 104 Мария Новосибирск 2021-01-15 4000
Функция merge автоматически объединяет датафреймы по столбцу "заказ", на основе которого они связаны. В результате получается новый датафрейм df, в котором содержится информация из обоих исходных датафреймов.
Если в исходных датафреймах есть столбцы с одинаковыми именами, то в результате merge они будут переименованы автоматически. Для того чтобы сохранить их имена, можно использовать параметры suffixes:
python
df = pd.merge(df1, df2, on='заказ', suffixes=('_клиент', '_заказ'))
print(df)
Результат:
python
заказ клиент город дата стоимость
0 101 Иван Москва 2021-01-01 1000
1 102 Петр Санкт-Петербург 2021-01-05 2000
2 103 Сергей Екатеринбург 2021-01-10 3000
3 104 Мария Новосибирск 2021-01-15 4000
Функция merge позволяет также выбирать тип объединения (inner, outer, left, right) с помощью параметра how:
python
df1 = pd.DataFrame({'заказ': [101, 102, 103, 104],
'клиент': ['Иван', 'Петр', 'Сергей', 'Мария'],
'город': ['Москва', 'Санкт-Петербург', 'Екатеринбург', 'Новосибирск']})
df2 = pd.DataFrame({'заказ': [101, 102, 105, 106],
'дата': ['2021-01-01', '2021-01-05', '2021-01-10', '2021-01-15'],
'стоимость': [1000, 2000, 3000, 4000]})
df = pd.merge(df1, df2, on='заказ', how='inner')
print(df)
Код выше соединяет два датафрейма по столбцу "заказ" с помощью внутреннего объединения. Результат:
python
заказ клиент город дата стоимость
0 101 Иван Москва 2021-01-01 1000
1 102 Петр Санкт-Петербург 2021-01-05 2000
У внутреннего объединения все элементы, которые не совпадают в обоих датафреймах, отбрасываются.
Таким образом, функция merge позволяет на основе заданных столбцов объединять два или более датафрейма в один общий фрейм. Это очень удобно, если необходимо анализировать информацию из нескольких источников или комбинировать ее в разных формах, для определения новых взаимосвязей и бизнес-инсайтов.