2015-09-16 8 views
10

Die Frage ist, wie NaNs mit den häufigsten Ebenen für Kategorie Spalte in Pandas Dataframe füllen?Imputation von fehlenden Werten für Kategorien in Pandas

In R Random Paket gibt es na.roughfix Option: 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 Pandas für numerische Variablen I NaN-Werte mit füllen kann:

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

Antwort

17

Sie können df = df.fillna(df['Label'].value_counts().index[0]) verwenden zu füllen NaNs mit dem häufigsten Wert aus einer Spalte.

Wenn Sie jede Spalte mit ihrem eigenen häufigster Wert füllen Sie

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

+0

Dank verwenden können, es funktioniert. Ich habe auch festgestellt, dass ich es mit numpy 'np.asscalar ((Modus (df ['Label']) [0]))' –

+0

Für den ersten Fall, 'df.fillna' nimmt ein' inplace' Schlüsselwort, dass Sie kann auf "True" gesetzt werden, was zu etwas prägnanterem Code führt. – James

Verwandte Themen