In qualità di analista di dati, dovrai spesso affrontare la necessità di combinare più set di dati. Dovrai farlo per completare la tua analisi e arrivare a una conclusione per il tuo business/stakeholder.
Spesso è difficile rappresentare i dati quando sono archiviati in tabelle diverse. In tali circostanze, i join dimostrano il loro valore, indipendentemente dal linguaggio di programmazione su cui stai lavorando.
I join Python sono come i join SQL: combinano i set di dati facendo corrispondere le loro righe su un indice comune.
Crea due frame di dati come riferimento
Per seguire gli esempi in questa guida, puoi creare due DataFrame di esempio. Utilizzare il codice seguente per creare il primo DataFrame, che contiene un ID, un nome e un cognome.
importare panda come pd
a = pd. DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Fnome": ["Ron", "John", "Elena", "Jenny", "Kenny"],
"Lname": ["Keith", "Harley", "fabbro", "Kerr-Hislop", "Barbiere"]})
Stampa(un)
Per il primo passaggio, importa il file
panda biblioteca. È quindi possibile utilizzare una variabile, un, per archiviare il risultato dal costruttore DataFrame. Passa al costruttore un dizionario contenente i valori richiesti.Infine, visualizza il contenuto del valore DataFrame con la funzione di stampa, per verificare che tutto appaia come ti aspetteresti.
Allo stesso modo, puoi creare un altro DataFrame, b, che contiene un ID e valori salariali.
b = pd. DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Stipendio": [100000, 700000, 80000, 904750, 604772]})
Stampa(b)
Puoi controllare l'output in una console o in un IDE. Dovrebbe confermare il contenuto dei tuoi DataFrames:
In che modo i join sono diversi dalla funzione di unione in Python?
La libreria Pandas è una delle principali librerie che puoi usare per manipolare DataFrame. Poiché i DataFrames contengono più set di dati, in Python sono disponibili varie funzioni per unirli.
Python offre le funzioni di unione e unione, tra molte altre, che puoi utilizzare per combinare DataFrames. C'è una netta differenza tra queste due funzioni, che devi tenere a mente prima di usarle.
La funzione di unione unisce due DataFrame in base ai loro valori di indice. Il la funzione di unione combina DataFrames in base ai valori dell'indice e alle colonne.
Cosa devi sapere sui join in Python?
Prima di discutere i tipi di join disponibili, ecco alcune cose importanti da notare:
- I join SQL sono una delle funzioni più basilari e sono abbastanza simili ai join di Python.
- Per unirti a DataFrames, puoi utilizzare il file panda. DataFrame.join() metodo.
- Il join predefinito esegue un join sinistro, mentre la funzione di unione esegue un join interno.
La sintassi predefinita per un join Python è la seguente:
DataFrame.join (altro, on=Nessuno, come='sinistra/destra/interno/esterno', lsuffisso='', suffisso rs='',
ordina=Falso)
Richiamare il metodo join sul primo DataFrame e passare il secondo DataFrame come primo parametro, Altro. I restanti argomenti sono:
- Su, che nomina un indice a cui partecipare, se ce n'è più di uno.
- come, che definisce il tipo di unione, inclusi interno, esterno, sinistro e destro.
- lsuffisso, che definisce la stringa del suffisso sinistro del nome della colonna.
- suffisso, che definisce la stringa di suffisso corretta del nome della colonna.
- ordinare, che è un valore booleano che indica se ordinare il DataFrame risultante.
Impara a usare i vari tipi di join in Python
Python ha alcune opzioni di join, che puoi esercitare, a seconda delle necessità dell'ora. Ecco i tipi di join:
1. Partecipa a sinistra
Il join sinistro mantiene intatti i valori del primo DataFrame mentre introduce i valori corrispondenti dal secondo. Ad esempio, se si desidera inserire i valori corrispondenti da b, puoi definirlo come segue:
c = a.unire (b, come="sinistra", lsuffisso = "_sinistra", suffisso rs = "_Giusto", ordina = Vero)
Stampa(c)
Quando la query viene eseguita, l'output contiene i seguenti riferimenti di colonna:
- ID_sinistra
- Fnome
- Lname
- ID_destra
- Stipendio
Questo join estrae le prime tre colonne dal primo DataFrame e le ultime due colonne dal secondo DataFrame. Ha utilizzato il lsuffisso e suffisso valori per rinominare le colonne ID di entrambi i set di dati, assicurando che i nomi dei campi risultanti siano univoci.
L'uscita è la seguente:
2. Partecipa a destra
Il join destro mantiene intatti i valori del secondo DataFrame, mentre introduce i valori corrispondenti dalla prima tabella. Ad esempio, se si desidera inserire i valori corrispondenti da un, puoi definirlo come segue:
c = b.unire (a, come="Giusto", lsuffisso = "_Giusto", suffisso rs = "_sinistra", ordina = Vero)
Stampa(c)
L'uscita è la seguente:
Se rivedi il codice, ci sono alcune modifiche evidenti. Ad esempio, il risultato include le colonne del secondo DataFrame prima di quelle del primo DataFrame.
Dovresti usare un valore di Giusto per il come argomento per specificare un join corretto. Inoltre, nota come puoi cambiare il lsuffisso e suffisso valori per riflettere la natura del giusto join.
Nei tuoi join regolari, potresti ritrovarti a utilizzare i join sinistro, interno ed esterno più frequentemente, rispetto al join destro. Tuttavia, l'utilizzo dipende interamente dai requisiti dei dati.
3. Unisciti interni
Un inner join fornisce le voci corrispondenti da entrambi i DataFrame. Poiché i join utilizzano i numeri di indice per abbinare le righe, un inner join restituisce solo le righe che corrispondono. Per questa illustrazione, utilizziamo i due DataFrame seguenti:
a = pd. DataFrame({"ID": ["001", "002", "003", "004", "005", "006", "007"],
"Fnome": ["Ron", "John", "Elena", "Jenny", "Kenny", "Daryl", "Cathy"],
"Lname": ["Keith", "Harley", "fabbro", "Kerr-Hislop", "Barbiere", "cestista", "Sperare"]})
b = pd. DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Stipendio": [100000, 700000, 80000, 904750, 604772]})
Stampa(un)
Stampa(b)
L'uscita è la seguente:
È possibile utilizzare un inner join, come segue:
c = a.join (b, lsuffix="_sinistra", suffisso rs="_Giusto", come='interno')
Stampa(c)
L'output risultante contiene solo righe che esistono in entrambi i DataFrames di input:
4. Join esterno
Un outer join restituisce tutti i valori di entrambi i DataFrames. Per le righe senza valori corrispondenti, produce un valore nullo sulle singole celle.
Utilizzando lo stesso DataFrame di cui sopra, ecco il codice per l'outer join:
c = a.join (b, lsuffix="_sinistra", suffisso rs="_Giusto", come='esterno')
Stampa(c)
Utilizzo dei join in Python
I join, come le loro funzioni di controparte, merge e concat, offrono molto più di una semplice funzionalità di join. Data la sua serie di opzioni e funzioni, puoi scegliere le opzioni che soddisfano le tue esigenze.
Puoi ordinare i set di dati risultanti in modo relativamente semplice, con o senza la funzione di unione, con le opzioni flessibili offerte da Python.