I 4 tipi di join DataFrame offerti dalla libreria Pandas di Python

I 4 tipi di join DataFrame offerti dalla libreria Pandas di Python

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.





FARE USO DEL VIDEO DEL GIORNO

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.

import pandas as pd 

a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber"]})
print(a)

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"], 
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(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.

il controller ps4 non si connette a ps4

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(other, on=None, how='left/right/inner/outer', lsuffix='', rsuffix='', 
sort=False)

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 , quale definisce il tipo di unione, inclusi interno, esterno, sinistro e destro.
  • lsuffisso , quale definisce la stringa del suffisso sinistro del nome della colonna.
  • suffisso , quale definisce la stringa di suffisso corretta del nome della colonna.
  • ordinare , quale è un 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.join(b, how="left", lsuffix = "_left", rsuffix = "_right", sort = True) 
print(c)

Quando la query viene eseguita, l'output contiene i seguenti riferimenti di colonna:

Il disco rigido esterno di Windows 10 non funziona
  • 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:

  Codice che mostra il join sinistro in Python's dataframes

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.join(a, how="right", lsuffix = "_right", rsuffix = "_left", sort = True) 
print(c)

L'uscita è la seguente:

  Codice che mostra il join corretto in Python's dataframes

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.

come proteggere con password un'unità USB

3. Unione interna

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"], 
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny", "Daryl", "Cathy"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber", "Hooper", "Hope"]})
b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(a)
print(b)

L'uscita è la seguente:

  Crea nuovi dataframe in Python

È possibile utilizzare un inner join, come segue:

c = a.join(b, lsuffix="_left", rsuffix="_right", how='inner') 
print(c)

L'output risultante contiene solo righe che esistono in entrambi i DataFrames di input:

  Codice che mostra inner join in Python's dataframes

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="_left", rsuffix="_right", how='outer') 
print(c)
  Codice che mostra il join esterno in Python's dataframes

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.