- 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!
Il programma della micro-lezione
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 👋