Una guida disturbanteamente lunga (ma eccellente) su come eseguire gli join in Pandas

A disturbingly long (but excellent) guide on how to perform joins in Pandas

Dai semi/anti join alla convalida dei dati fusi

Immagine di me con Midjourney

Uno shock spiacevole che si presenta con i dati del mondo reale è che non arrivano mai in un singolo, tranquillo file CSV. Invece, sono un insieme di tabelle che interagiscono tra loro in molti modi utilizzando colonne comuni.

Il tuo sfortunato compito è sfruttare queste interazioni e trovare informazioni dal caos. E la tua abilità più importante per svolgere il compito sarà eseguire le fusioni tra le tabelle.

Quindi, il mio sfortunato compito oggi è insegnarti quasi tutti i modi in cui puoi fare queste fusioni in Pandas. Prendi un caffè; ci vorrà un po’ di tempo.

Pandas merge()

Pandas fornisce diversi metodi per eseguire fusioni su dataframes. Tra tutti gli altri, il metodo merge() è il più flessibile. È un metodo del dataframe, e la sintassi generale è la seguente:

df1.merge(df2, on='common_column')

Quando si combinano le tabelle, ci sono due termini con cui dovresti essere familiare: il nome della tabella che utilizzi per prima viene chiamato la tabella di sinistra, mentre l’altra viene chiamata la tabella di destra. Nel frammento di codice sopra, la tabella di sinistra è df1, mentre la tabella di destra è df2. Inoltre, i verbi join, combine e merge vengono utilizzati in modo interscambiabile.

Ora vediamo come eseguire una join interna:

Una join interna restituirà solo le righe con valori corrispondenti in entrambe le tabelle. Durante il processo di join, dovrai conoscere il nome della colonna comune in entrambe le tabelle.

Esplorazione di base

Familiarizziamoci con un paio di dataset da utilizzare nell’articolo.

Diciamo che abbiamo queste due tabelle:

>>> user_usage.head()

>>> user_devices.head()