logo

Pandas DataFrame.merge()

panda combina() este definit ca procesul de reunire a celor două seturi de date într-unul singur și de aliniere a rândurilor pe baza atributelor sau coloanelor comune. Este un punct de intrare pentru toate operațiunile standard de îmbinare a bazei de date între obiectele DataFrame:

Sintaxă:

 pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True) 

Parametri:

    dreapta: DataFrame sau serie numită
    Este un obiect care se îmbină cu DataFrame.Cum: {'stânga', 'dreapta', 'exterior', 'intern'}, implicit 'interior'
    Tipul de îmbinare de efectuat.
      stânga:Folosește doar cheile din cadrul din stânga, similar cu o îmbinare exterioară stângă SQL; păstrează ordinea cheilor.dreapta:Folosește doar cheile din cadrul drept, similar cu o îmbinare exterioară dreaptă SQL; păstrează ordinea cheilor.exterior:A folosit unirea cheilor din ambele cadre, similar cu o îmbinare exterioară completă SQL; sortați cheile lexicografic.interior:Folosește intersecția cheilor din ambele cadre, similar cu o îmbinare internă SQL; păstrează ordinea tastelor din stânga.
    pe: etichetă sau listă
    Este o coloană sau nume de nivel de index la care să se alăture. Acesta trebuie să fie găsit atât în ​​DataFrames-ul din stânga, cât și în cel din dreapta. Dacă activat este Nici unul și nu se îmbină pe indexuri, atunci aceasta este implicită la intersecția coloanelor din ambele DataFrames.
    rămas pe: etichetă sau listă sau asemănătoare matricei
    Este o coloană sau nume de nivel de index din DataFrame din stânga pentru a fi folosit ca cheie. Poate fi o matrice cu lungime egală cu lungimea DataFrame.dreapta_pe: etichetă sau listă sau asemănătoare matricei
    Este o coloană sau nume de nivel de index din DataFrame drept pentru a le folosi ca chei. Poate fi o matrice cu lungime egală cu lungimea DataFrame.left_index : bool, implicit False
    Folosește indexul din DataFrame din stânga ca chei de unire, dacă este adevărat. În cazul MultiIndex (ierarhic), multe chei din celălalt DataFrame (fie indexul, fie unele coloane) ar trebui să se potrivească cu numărul de niveluri.dreapta_index : bool, implicit False
    Utilizează indexul din DataFrame drept ca cheie de unire. Are aceeași utilizare ca stânga_index.fel: bool, implicit False
    Dacă este adevărat, sortează cheile de unire în ordine lexicografică în DataFrame rezultat. În caz contrar, ordinea cheilor de unire depinde de tipul de unire (cuvânt cheie cum).sufixe: tuplu al lui (str, str), implicit ('_x', '_y')
    Se aplică sufixe pentru a suprapune numele coloanelor din DataFrame din stânga și din dreapta, respectiv. Coloanele folosesc valori (False, False) pentru a ridica o excepție la suprapunere.copie: bool, implicit Adevărat
    Dacă este adevărat, returnează o copie a DataFrame.
    În caz contrar, poate evita copierea.indicator: bool sau str, implicit False
    Dacă este adevărat, adaugă o coloană la ieșirea DataFrame ' _combina ' cu informații despre sursa fiecărui rând. Dacă este un șir, o coloană cu informații despre sursa fiecărui rând va fi adăugată la DataFrame de ieșire, iar coloana va fi numită valoarea unui șir. Coloana de informații este definită ca un tip categoric și ia valoarea:
      „doar_stânga”pentru observațiile a căror cheie de îmbinare apare numai în „stânga” DataFrame, în timp ce,„doar_dreapta”este definit pentru observațiile în care cheia de îmbinare apare numai în „dreapta” DataFrame,'ambii'dacă cheia de îmbinare a observației se găsește în ambele.
    valida: str, optional
    Dacă este specificat, verifică tipul de îmbinare care este prezentat mai jos:
    • „one_to_one” sau „1:1”: verifică dacă cheile de îmbinare sunt unice în ambele seturi de date din stânga și din dreapta.
    • „one_to_many” sau „1:m”: verifică dacă cheile de îmbinare sunt unice doar în setul de date din stânga.
    • „many_to_one” sau „m:1”: verifică dacă cheile de îmbinare sunt unice doar în setul de date potrivit.
    • 'many_to_many' sau 'm:m': este permis, dar nu are ca rezultat verificări.

Exemplul 1: Îmbinați două DataFrames pe o cheie

 # 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) 

Ieșire

 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 

Exemplul 2: Îmbinați două DataFrames pe mai multe chei:

 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') 

Ieșire

 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