панди злиття () визначається як процес об’єднання двох наборів даних в один і вирівнювання рядків на основі загальних атрибутів або стовпців. Це точка входу для всіх стандартних операцій з’єднання бази даних між об’єктами DataFrame:
Синтаксис:
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
Параметри:
- 'one_to_one' або '1:1': перевіряє, чи унікальні ключі злиття в лівому та правому наборах даних.
- 'one_to_many' або '1:m': перевіряє, чи унікальні ключі злиття лише в лівому наборі даних.
- 'many_to_one' або 'm:1': перевіряє, чи унікальні ключі злиття лише в потрібному наборі даних.
- 'many_to_many' або 'm:m': це дозволено, але не призводить до перевірок.
Це об’єкт, який зливається з DataFrame.
Тип злиття, яке буде виконано.
Це імена рівня стовпців або індексів, до яких можна приєднатися. Його потрібно знайти як у лівому, так і в правому DataFrames. Якщо on має значення None і не об’єднує індекси, то за замовчуванням буде перетин стовпців в обох DataFrames.
left_on: мітка, список або масив
Це назви стовпців або рівнів індексу з лівого DataFrame для використання як ключа. Це може бути масив, довжина якого дорівнює довжині DataFrame.
Це назви стовпців або рівнів індексів із правого DataFrame для використання як ключів. Це може бути масив, довжина якого дорівнює довжині DataFrame.
Він використовує індекс з лівого DataFrame як ключ(и) об’єднання, якщо це істинно. У випадку MultiIndex (ієрархічного), багато ключів в іншому DataFrame (або індекс, або деякі стовпці) мають відповідати кількості рівнів.
Він використовує індекс із правого DataFrame як ключ об’єднання. Він використовується так само, як і left_index.
Якщо True, він сортує ключі об’єднання в лексикографічному порядку в результуючому DataFrame. В іншому випадку порядок ключів об’єднання залежить від типу об’єднання (ключове слово how).
Це суфікси для застосування, щоб перекривати імена стовпців у лівому та правому DataFrame відповідно. Стовпці використовують значення (False, False), щоб створити виняток у разі накладання.
Якщо True, повертається копія DataFrame.
В іншому випадку можна уникнути копіювання.
Якщо True, він додає стовпець для виводу DataFrame ' _merge ' з інформацією про джерело кожного рядка. Якщо це рядок, стовпець з інформацією про джерело кожного рядка буде додано до виводу DataFrame, а стовпець буде названо значенням рядка. Інформаційний стовпець визначається як категорійний тип і приймає значення:
Якщо його вказано, перевіряється тип злиття, наведений нижче:
Приклад 1: об’єднання двох DataFrames на ключі
# import the pandas library import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4], 'Name': ['John', 'Parker', 'Smith', 'Parker'], 'subject_id':['sub1','sub2','sub4','sub6']}) right = pd.DataFrame({ 'id':[1,2,3,4], 'Name': ['William', 'Albert', 'Tony', 'Allen'], 'subject_id':['sub2','sub4','sub3','sub6']}) print (left) print (right)
Вихід
id Name subject_id 0 1 John sub1 1 2 Parker sub2 2 3 Smith sub4 3 4 Parker sub6 id Name subject_id 0 1 William sub2 1 2 Albert sub4 2 3 Tony sub3 3 4 Allen sub6
Приклад 2: об’єднання двох DataFrames на кількох ключах:
import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5']}) right = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5']}) print pd.merge(left,right,on='id')
Вихід
id Name_x subject_id_x Name_y subject_id_y 0 1 John sub1 William sub2 1 2 Parker sub2 Albert sub4 2 3 Smith sub4 Tony sub3 3 4 Parker sub6 Allen sub6