Handle Missing Values in pandas
Find empty cells, then fill them or drop them so your calculations do not break.
- Finding NaN with isna()
- fillna() with a value or the median
- dropna() to remove rows
Ada95LinNaN → 90.0 (median)Sam85Find, then fill or drop
I dati reali hanno spesso celle vuote a causa di informazioni incomplete, errori di inserimento o problemi di lettura. In pandas i valori mancanti sono rappresentati da NaN. Puoi eliminare quelle righe oppure riempirle con un valore ragionevole, a seconda del significato dei dati.
Punti chiave
- Missing numbers appear as NaN.
isna().sum() counts the gaps in each column.fillna(df["score"].median())fills gaps with a typical value.dropna()removes rows that have gaps.
Quando si usa?
- Leggere, pulire e trasformare dati in tabella, come file CSV o Excel.
- Analizzare, calcolare statistiche e riassumere i dati per gruppi.
- Preparare i dati per report, grafici o modelli di machine learning.
Codice di esempio
import pandas as pd
import numpy as np
students = pd.DataFrame({"name": ["Ada", "Lin", "Sam"], "score": [95, np.nan, 85]})
students["score"] = students["score"].fillna(students["score"].median())
print(students)
Risultato dell'esecuzione
name score
0 Ada 95.0
1 Lin 90.0
2 Sam 85.0
Spiegazione del codice
La mediana viene calcolata con i voti disponibili, 95 e 85, e vale 90. Il metodo fillna() sostituisce il NaN di Lin con 90. Il risultato viene riassegnato alla colonna score perché la modifica resti salvata nel DataFrame. Usare la mediana invece della media rende il risultato meno sensibile a valori molto alti o molto bassi.
Modifica i valori ed esegui il programma nel compilatore Python online CodeUtility senza installare Python.
Esercizi di approfondimento
Prova a modificare il codice seguendo i suggerimenti qui sotto. Cambiare il codice e osservare il risultato ti aiuta a capire molto più che leggerlo soltanto.
- Aggiungi righe, colonne e qualche valore mancante ai dati di esempio.
- Combina filtro, ordinamento e groupby per creare un piccolo report.
- Leggi un file di dati reale, controlla il tipo di ogni colonna e gestisci i valori non validi.