панди сливане () се определя като процес на обединяване на двата набора от данни в един и подравняване на редовете въз основа на общите атрибути или колони. Това е входна точка за всички стандартни операции за свързване на бази данни между 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.
оставен: етикет или списък, или подобен на масив
Това е име на ниво колона или индекс от лявата DataFrame, което да се използва като ключ. Може да бъде масив с дължина, равна на дължината на DataFrame.
Това са имена на ниво колона или индекс от дясната DataFrame, които да се използват като ключове. Може да бъде масив с дължина, равна на дължината на DataFrame.
Той използва индекса от лявата DataFrame като ключ(ове) за присъединяване, ако е вярно. В случай на MultiIndex (йерархичен), много ключове в другата DataFrame (или индексът, или някои колони) трябва да съответстват на броя на нивата.
Той използва индекса от дясната DataFrame като ключ за присъединяване. Има същата употреба като left_index.
Ако е True, той сортира ключовете за свързване в лексикографски ред в резултата DataFrame. В противен случай редът на ключовете за присъединяване зависи от типа присъединяване (ключова дума how).
Това е наставка за прилагане за припокриване на имената на колоните съответно в лявата и дясната DataFrame. Колоните използват стойности (False, False), за да предизвикат изключение при припокриване.
Ако е True, връща копие на DataFrame.
В противен случай може да избегне копието.
Ако е True, добавя колона за извеждане на DataFrame ' _сливане ' с информация за източника на всеки ред. Ако това е низ, колона с информация за източника на всеки ред ще бъде добавена към изходния 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