Pande združi () je definiran kot postopek združevanja dveh nizov podatkov v enega in poravnave vrstic na podlagi skupnih atributov ali stolpcev. Je vstopna točka za vse standardne operacije združevanja baze podatkov med objekti DataFrame:
Sintaksa:
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
Parametri:
- 'one_to_one' ali '1:1': Preveri, ali so združitveni ključi edinstveni v levem in desnem nizu podatkov.
- 'one_to_many' ali '1:m': Preveri, ali so združitveni ključi edinstveni samo v levem nizu podatkov.
- 'many_to_one' ali 'm:1': Preveri, ali so združitveni ključi edinstveni samo v pravem nizu podatkov.
- 'many_to_many' ali 'm:m': dovoljeno je, vendar ne povzroči preverjanj.
Je objekt, ki se združi z DataFrame.
Vrsta združitve, ki bo izvedena.
Gre za imena ravni stolpcev ali indeksov, ki se jim pridružite. Najti ga je treba v levem in desnem podatkovnem okviru. Če je on nastavljen na None in se indeksi ne združujejo, potem je to privzeto presečišče stolpcev v obeh podatkovnih okvirih.
levo_na: oznaka ali seznam ali podobno matriki
To so imena ravni stolpcev ali indeksov iz levega DataFrame, ki se uporabljajo kot ključ. Lahko je matrika z dolžino, ki je enaka dolžini DataFrame.
To so imena ravni stolpcev ali indeksov iz desnega DataFrame, ki se uporabljajo kot ključi. Lahko je matrika z dolžino, ki je enaka dolžini DataFrame.
Uporablja indeks iz levega podatkovnega okvira kot ključ(e) za združevanje, če je res. V primeru MultiIndex (hierarhičnega) bi se morali številni ključi v drugem DataFrame (bodisi indeks ali nekateri stolpci) ujemati s številom ravni.
Kot ključ za združevanje uporablja indeks iz desnega DataFrame. Uporablja se enako kot levi_indeks.
Če je True, razvrsti združevalne ključe v leksikografskem vrstnem redu v rezultatu DataFrame. V nasprotnem primeru je vrstni red ključev za združevanje odvisen od vrste združevanja (ključna beseda how).
Pripone za uporabo za prekrivanje imen stolpcev v levem in desnem DataFrame. Stolpci uporabljajo vrednosti (False, False) za sprožitev izjeme pri prekrivanju.
Če je True, vrne kopijo DataFrame.
V nasprotnem primeru se lahko izogne kopiji.
Če je True, doda stolpec za izpis DataFrame ' _združiti ' z informacijami o izvoru vsake vrstice. Če je to niz, bo stolpec z informacijami o izvoru vsake vrstice dodan v izhod DataFrame, stolpec pa bo poimenovan vrednost niza. Stolpec z informacijami je opredeljen kot kategorični tip in ima vrednost:
Če je naveden, preveri vrsto spajanja, ki je podana spodaj:
Primer1: Združite dva podatkovna okvirja na ključ
# 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)
Izhod
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
Primer2: Združite dva podatkovna okvira na več ključih:
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')
Izhod
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