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:
- '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.
È un oggetto che si fonde con DataFrame.
Tipo di fusione da eseguire.
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.
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.
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.
Utilizza l'indice del DataFrame destro come chiave di join. Ha lo stesso utilizzo di left_index.
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).
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.
Se True, restituisce una copia del DataFrame.
Altrimenti, può evitare la copia.
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:
Se è specificato, controlla il tipo di unione indicato di seguito:
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