• 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.

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:

python fillna()

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ì:

python fillna()

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 👋