• analiticas
  • Posts
  • Unire dataset con pandas: la funzione merge()

Unire dataset con pandas: la funzione merge()

Combina i tuoi dati in modo efficace e intuitivo

Lavorare con più dataset è all'ordine del giorno per ogni analista. Ma come possiamo combinarli in modo efficiente? La risposta è semplice: con la funzione merge() di pandas!

Cos'è merge()?

La funzione merge() ci permette di unire due dataframe basandoci sui valori in comune di una o più colonne.

La libreria e i dataframe

Prima di iniziare, importiamo l’unica libreria necessaria per questa micro-lezione:

import pandas as pd

Creiamo due semplici dataframe di due colonne ciascuno (se hai già dei dati su cui stai lavorando puoi saltare questo passaggio):

# dataframe 1
df1 = pd.DataFrame({
    'ID': [1, 2, 3, 4],
    'Nome': ['Alice', 'Bob', 'Charlie', 'David']
})


# dataframe 2
df2 = pd.DataFrame({
    'ID': [1, 2, 3, 5],
    'Età': [25, 30, 35, 40]
})

Ecco come appaiono i nostri dataframe:

df1:

ID

Nome

1

Alice

2

Bob

3

Charlie

4

David

df2:

ID

Età

1

25

2

30

3

35

5

40

Uniamo i dataframe con merge()

Ora uniamo i due dataframe usando la colonna 'ID' come chiave:

df_merged = pd.merge(df1, df2, on='ID')

Ecco il risultato:

ID

Nome

Età

1

Alice

25

2

Bob

30

3

Charlie

35

Hai notato che la riga contenente “David” nel dataframe 1 e la riga con l'ID 5 del dataframe 2 sono scomparse?

Questo perché di default merge() esegue un'unione di tipo "inner", includendo solo le righe con valori presenti in entrambi i dataframe.

Quindi, avremmo potuto scrivere la riga di codice vista qui sopra così, specificando il parametro how:

df_merged = pd.merge(df1, df2, how='inner', on='ID')

I tipi di unione

Il parametro how serve per specificare diversi tipi di unione. Le opzioni disponibili sono:

  • inner (il valore di default): seleziona solo le righe con corrispondenze in entrambi i dataframe.

  • left: seleziona tutte le righe del dataframe di sinistra, più le corrispondenze dal dataframe di destra.

  • right: seleziona tutte le righe del dataframe di destra, più le corrispondenze dal dataframe di sinistra.

  • outer: seleziona tutte le righe di entrambi i dataframe, con corrispondenze o meno.

Conclusione

La funzione merge() è uno strumento potente per combinare dataset in pandas. Ricordati sempre di controllare i tuoi dati prima e dopo l'unione per assicurarti che il risultato sia quello che ti aspetti.

Con un po' di pratica, unire dataset diventerà semplice ed immediato!

Alla prossima micro-lezione 👋