Come eseguire un join a sinistra in pandas (con esempio)


È possibile utilizzare la seguente sintassi di base per eseguire un left join nei panda:

 import pandas as pd

df1. merge (df2, on=' column_name ', how=' left ')

L’esempio seguente mostra come utilizzare questa sintassi nella pratica.

Esempio: come eseguire un left join in Pandas

Supponiamo di avere i seguenti due DataFrames panda che contengono informazioni su varie squadre di basket:

 import pandas as pd

#createDataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                    ' points ': [18, 22, 19, 14, 14, 11, 20, 28]})

df2 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'G', 'H'],
                    ' assists ': [4, 9, 14, 13, 10, 8]})

#view DataFrames
print (df1)

  team points
0 to 18
1 B 22
2 C 19
3 D 14
4 E 14
5 F 11
6 G 20
7:28 a.m.

print (df2)

  team assists
0 to 4
1 B 9
2 C 14
3 D 13
4G 10
5:8 a.m.

Possiamo utilizzare il seguente codice per eseguire un left join, mantenendo tutte le righe del primo DataFrame e aggiungendo tutte le colonne che corrispondono in base alla colonna del team nel secondo DataFrame:

 #perform left join
df1. merge (df2, on=' team ', how=' left ')

        team points assists
0 to 18 4.0
1 B 22 9.0
2 C 19 14.0
3 D 14 13.0
4 E 14 NaN
5 F 11 NaN
6G 20 10.0
7:28 a.m. 8.0

Ogni squadra nel DataFrame di sinistra ( df1 ) viene restituita nel DataFrame unito e vengono restituite solo le righe nel DataFrame di destra ( df2 ) che corrispondono a un nome di squadra nel DataFrame di sinistra.

Tieni presente che le due squadre in df2 (squadre E e F) che non corrispondono al nome di una squadra in df1 restituiscono semplicemente un valore NaN nella colonna assist del DataFrame unito.

Tieni presente che puoi anche utilizzare pd.merge() con la seguente sintassi per restituire esattamente lo stesso risultato:

 #perform left join
p.d. merge (df1, df2, on=' team ', how=' left ')


        team points assists
0 to 18 4.0
1 B 22 9.0
2 C 19 14.0
3 D 14 13.0
4 E 14 NaN
5 F 11 NaN
6G 20 10.0
7:28 a.m. 8.0

Tieni presente che questo DataFrame unito corrisponde a quello dell’esempio precedente.

Nota : qui è possibile trovare la documentazione completa per la funzione di unione .

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:

Come eseguire un anti-join in Pandas
Come eseguire un inner join in Pandas
Come eseguire un cross join in Pandas

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *