logo

Panda DataFrame.merge()

Panda unisci() è definito come il processo di riunificazione dei due set di dati in uno solo e di allineamento delle righe in base agli attributi o alle colonne comuni. È un punto di ingresso per tutte le operazioni di join di database standard tra oggetti DataFrame:

Sintassi:

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

parametri:

    Giusto: DataFrame o serie denominate
    È un oggetto che si fonde con DataFrame.Come: {'sinistra', 'destra', 'esterno', 'interno'}, predefinito 'interno'
    Tipo di fusione da eseguire.
      Sinistra:Utilizza solo le chiavi del frame sinistro, simile a un left external join SQL; preservare l'ordine delle chiavi.Giusto:Utilizza solo le chiavi del frame destro, simile a un right external join SQL; preservare l'ordine delle chiavi.esterno:Utilizzava l'unione delle chiavi di entrambi i frame, simile a un full external join SQL; ordinare le chiavi lessicograficamente.interno:Utilizza l'intersezione delle chiavi di entrambi i frame, simile a un inner join SQL; preservare l'ordine dei tasti di sinistra.
    SU: etichetta o elenco
    Si tratta di nomi di colonna o di livello di indice a cui unirsi. Deve essere trovato sia nel DataFrames sinistro che in quello destro. Se attivo è None e non si unisce agli indici, per impostazione predefinita viene utilizzata l'intersezione delle colonne in entrambi i DataFrames.
    lasciato acceso: etichetta o elenco o simile a un array
    Si tratta di nomi di colonna o livello di indice dal DataFrame sinistro da utilizzare come chiave. Può essere un array con lunghezza pari alla lunghezza del DataFrame.giusto_su: etichetta o elenco o simile a un array
    Si tratta di nomi di colonna o livello di indice dal DataFrame destro da utilizzare come chiavi. Può essere un array con lunghezza pari alla lunghezza del DataFrame.indice_sinistra: bool, predefinito False
    Utilizza l'indice del DataFrame sinistro come chiave/i di join, se vero. Nel caso di MultiIndex (gerarchico), molte chiavi nell'altro DataFrame (l'indice o alcune colonne) dovrebbero corrispondere al numero di livelli.indice_destro: bool, predefinito False
    Utilizza l'indice del DataFrame destro come chiave di join. Ha lo stesso utilizzo di left_index.ordinare: bool, predefinito False
    Se True, ordina le chiavi di join in ordine lessicografico nel DataFrame risultato. Altrimenti, l'ordine delle chiavi di join dipende dal tipo di join (how parola chiave).suffissi: tupla di (str, str), default ('_x', '_y')
    Il suffisso si applica per sovrapporre i nomi delle colonne rispettivamente nel DataFrame sinistro e destro. Le colonne utilizzano valori (False, False) per sollevare un'eccezione in caso di sovrapposizione.copia: bool, predefinito Vero
    Se True, restituisce una copia del DataFrame.
    Altrimenti, può evitare la copia.indicatore: bool o str, predefinito False
    Se True, aggiunge una colonna all'output DataFrame ' _unire ' con informazioni sulla fonte di ogni riga. Se si tratta di una stringa, una colonna con informazioni sull'origine di ogni riga verrà aggiunta all'output DataFrame e la colonna verrà denominata valore di una stringa. La colonna informazioni è definita di tipo categoriale e assume valore:
      'solo_sinistra'per le osservazioni la cui chiave di unione appare solo nella 'sinistra' del DataFrame, mentre,'solo_giusto'è definito per le osservazioni in cui la chiave di unione appare solo nella 'destra' del DataFrame,'Entrambi'se la chiave di unione dell'osservazione si trova in entrambi.
    convalidare: stre, facoltativo
    Se è specificato, controlla il tipo di unione indicato di seguito:
    • 'one_to_one' o '1:1': controlla se le chiavi di unione sono univoche sia nel set di dati sinistro che in quello destro.
    • 'one_to_many' o '1:m': controlla se le chiavi di unione sono univoche solo nel set di dati di sinistra.
    • 'many_to_one' o 'm:1': controlla se le chiavi di unione sono univoche solo nel set di dati corretto.
    • 'many_to_many' o 'm:m': è consentito, ma non comporta controlli.

Esempio 1: unisci due DataFrame su una chiave

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

Produzione

 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 

Esempio2: unisci due DataFrame su più chiavi:

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

Produzione

 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