2015-09-16 13 views
10

La domanda è come riempire i NaN con i livelli più frequenti per la colonna delle categorie nel dataframe dei panda?Imputazione dei valori mancanti per le categorie nei panda

Nel pacchetto R foresta casuale c'è na.roughfix opzione: A completed data matrix or data frame. For numeric variables, NAs are replaced with column medians. For factor variables, NAs are replaced with the most frequent levels (breaking ties at random). If object contains no NAs, it is returned unaltered.

in Panda per le variabili numeriche posso riempire i valori NaN con:

df = df.fillna(df.median()) 

risposta

17

È possibile utilizzare df = df.fillna(df['Label'].value_counts().index[0]) per riempire NaNs con il valore più frequente da una colonna.

Se si vuole riempire ogni colonna con un proprio valore più frequente è possibile utilizzare

df = df.apply(lambda x:x.fillna(x.value_counts().index[0]))

+0

Grazie, funziona. Ho anche scoperto che posso farlo con numpy 'np.asscalar ((mode (df ['Label']) [0]))' –

+0

Per il primo caso, 'df.fillna' prende una parola chiave' inplace' che tu può essere impostato su 'True' che rende il codice leggermente più conciso. – James

Problemi correlati