- analiticas
- Posts
- Gestire i valori mancanti con fillna() in pandas
Gestire i valori mancanti con fillna() in pandas
Impariamo a sostituire facilmente i dati mancanti nel tuo dataframe
Quando lavoriamo con i dati reali, è comune imbattersi in valori mancanti. Questi possono causare problemi nelle nostre analisi e nei nostri modelli.
In questa micro-lezione passeremo in rassegna il metodo fillna()
di pandas, che ci permette di gestire con facilità i valori nulli.
Il programma della micro-lezione
Le librerie e il dataframe
Iniziamo importando le due librerie necessarie per questa micro-lezione:
import pandas as pd
import numpy as np
Adesso creiamo un dataframe (puoi omettere questo passaggio se hai già un set di dati su cui stai lavorando):
# Creiamo un dataframe di esempio con valori mancanti
df = pd.DataFrame({
'Nome': ['Mario', 'Luigi', 'Peach', 'Bowser'],
'Età': [30, np.nan, 25, np.nan],
'Punteggio': [95.5, 88.0, np.nan, 75.0]
})
Il nostro dataframe ha dei valori nulli, come evidenziato in questa immagine:
Utilizzo base di fillna()
Adesso sostituiamo i dati mancanti con un valore predefinito. In questo esempio tutti i valori mancanti del dataframe, a prescindere della colonna in cui si trovano, saranno sostituiti da 0.
df.fillna(0, inplace=True)
Nota bene:
Il parametro inplace=True
fa sì che il metodo fillna()
venga applicato direttamente al dataframe sul quale stiamo lavorando.
Dopo questa operazione, il nostro dataframe sarà così:
Valori diversi per colonne diverse
Possiamo anche specificare dei valori da sostituire a quelli mancanti diversi per ogni colonna. Ecco come fare:
df.fillna({
'Età': "/",
'Punteggio': "-"
},
inplace=True)
In questo caso i valori nulli della colonna “Età” saranno sostituiti da “/” e quelli della colonna “Punteggio” dal carattere “-”.
Possiamo anche eseguire operazioni più complesse. Immaginiamo di voler:
Sostituire i valori nulli della colonna “Età” con la media degli altri valori della colonna
Sostituire i valori nulli della colonna “Punteggio” con la mediana degli altri valori della colonna
Ecco come possiamo farlo:
df.fillna({
'Età': df['Età'].mean(),
'Punteggio': df['Punteggio'].median()
},
inplace=True)
Conclusione
fillna()
è uno strumento potente e flessibile per la gestione dei valori mancanti nei dataframe pandas che ci permette di migliorare la qualità e la completezza dei nostri dati.
Ricorda però che i valori nulli devono essere identificati e quantificati prima di essere sostituiti e/o rimossi. A tal proposito, ti invito a dare uno sguardo ad una micro-lezione precedente in cui abbiamo visto come Identificare i valori nulli con pandas.
Alla prossima micro-lezione 👋