Come imputare i valori mancanti nei panda (incluso un esempio)
È possibile utilizzare la seguente sintassi di base per imputare i valori mancanti in un DataFrame panda:
df[' column_name '] = df[' column_name ']. interpolate ()
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: interpolare i valori mancanti nei panda
Supponiamo di avere il seguente DataFrame panda che mostra le vendite totali effettuate da un negozio per 15 giorni consecutivi:
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' day ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], ' sales ': [3, 6, 8, 10, 14, 17, 20, np.nan, np.nan, np.nan, np.nan, 35, 39, 44, 49]}) #view DataFrame print (df) day sales 0 1 3.0 1 2 6.0 2 3 8.0 3 4 10.0 4 5 14.0 5 6 17.0 6 7 20.0 7 8 NaN 8 9 NaN 9 10 NaN 10 11 NaN 11 12 35.0 12 13 39.0 13 14 44.0 14 15 49.0
Tieni presente che nel frame dati mancano i dati di vendita per quattro giorni.
Se creassimo un semplice grafico a linee per visualizzare le vendite nel tempo, ecco come apparirebbe:
#create line chart to visualize sales df[' sales ']. plot ()
Per riempire i valori mancanti, possiamo usare la funzione interpolate() come segue:
#interpolate missing values in 'sales' column df[' sales '] = df[' sales ']. interpolate () #view DataFrame print (df) day sales 0 1 3.0 1 2 6.0 2 3 8.0 3 4 10.0 4 5 14.0 5 6 17.0 6 7 20.0 7 8 23.0 8 9 26.0 9 10 29.0 10 11 32.0 11 12 35.0 12 13 39.0 13 14 44.0 14 15 49.0
Si noti che ciascuno dei valori mancanti è stato sostituito.
Se creiamo un altro grafico a linee per visualizzare il data frame aggiornato, ecco come apparirebbe:
#create line chart to visualize sales df[' sales ']. plot ()
Da notare che i valori scelti dalla funzione interpolate() sembrano corrispondere abbastanza bene all’andamento dei dati.
Nota : puoi trovare la documentazione completa per la funzione interpolate() qui .
Risorse addizionali
I seguenti tutorial forniscono ulteriori informazioni su come gestire i valori mancanti nei panda:
Come contare i valori mancanti nei panda
Come sostituire i valori NaN con una stringa in Pandas
Come sostituire i valori NaN con zero in Panda