pandy zlúčiť() je definovaný ako proces spojenia dvoch množín údajov do jednej a zarovnanie riadkov na základe spoločných atribútov alebo stĺpcov. Je to vstupný bod pre všetky štandardné operácie spájania databáz medzi objektmi DataFrame:
Syntax:
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
Parametre:
- 'one_to_one' alebo '1:1': Kontroluje, či sú zlučovacie kľúče jedinečné v ľavom aj pravom súbore údajov.
- 'one_to_many' alebo '1:m': Kontroluje, či sú zlučovacie kľúče jedinečné iba v ľavej množine údajov.
- 'many_to_one' alebo 'm:1': Kontroluje, či sú zlučovacie kľúče jedinečné iba v správnom súbore údajov.
- 'many_to_many' alebo 'm:m': Je to povolené, ale nevedie to k kontrolám.
Je to objekt, ktorý sa spája s DataFrame.
Typ zlúčenia, ktorý sa má vykonať.
Ide o názvy na úrovni stĺpcov alebo indexov, ku ktorým sa treba pripojiť. Musí sa nachádzať v ľavom aj pravom DataFrame. Ak je zapnuté Žiadne a nezlúči sa s indexmi, potom sa predvolene použije priesečník stĺpcov v oboch DataFrame.
left_on: štítok alebo zoznam alebo ako pole
Ide o názvy stĺpcov alebo indexových úrovní z ľavého DataFrame, ktoré sa majú použiť ako kľúč. Môže to byť pole s dĺžkou rovnajúcou sa dĺžke DataFrame.
Ide o názvy na úrovni stĺpcov alebo indexov z pravého DataFrame, ktoré sa majú použiť ako kľúče. Môže to byť pole s dĺžkou rovnajúcou sa dĺžke DataFrame.
Používa index z ľavého DataFrame ako kľúč(y) spojenia, ak je pravda. V prípade MultiIndex (hierarchický), mnoho kľúčov v inom DataFrame (buď index alebo niektoré stĺpce) by malo zodpovedať počtu úrovní.
Ako kľúč spojenia používa index z pravého DataFrame. Má rovnaké použitie ako left_index.
Ak má hodnotu True, zoradí kľúče spojenia v lexikografickom poradí vo výslednom DataFrame. V opačnom prípade poradie kľúčov spojenia závisí od typu spojenia (kľúčové slovo how).
Prípony použiť na prekrytie názvov stĺpcov v ľavom a pravom DataFrame. Stĺpce používajú hodnoty (False, False) na vyvolanie výnimky pri prekrývaní.
Ak je True, vráti kópiu DataFrame.
V opačnom prípade sa môže vyhnúť kópii.
Ak je pravda, pridá stĺpec do výstupu DataFrame ' _zlúčiť s informáciami o zdroji každého riadku. Ak ide o reťazec, do výstupu DataFrame sa pridá stĺpec s informáciami o zdroji každého riadku a stĺpec bude pomenovaný ako hodnota reťazca. Informačný stĺpec je definovaný ako kategorický typ a má hodnotu:
Ak je zadaný, skontroluje typ zlúčenia, ktorý je uvedený nižšie:
Príklad 1: Zlúčte dva dátové rámce na kľúči
# 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)
Výkon
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
Príklad 2: Zlúčte dva dátové rámce na viacerých kľúčoch:
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')
Výkon
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