NaN-Imputation mit Gruppenmittelwert bei Pandas
Das Auffüllen fehlender Werte mithilfe des Mittelwerts innerhalb jeder Gruppe ist eine häufige Aufgabe bei der Arbeit mit Tabellendaten. Betrachten Sie den folgenden DataFrame mit fehlenden Werten:
df = pd.DataFrame({'value': [1, np.nan, np.nan, 2, 3, 1, 3, np.nan, 3], 'name': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C']})
Unser Ziel ist es, die fehlenden Werte mit dem Mittelwert jeder Gruppe basierend auf der Spalte „Name“ zu imputieren.
Um dies zu erreichen, haben wir kann die Funktionen „groupby()“ und „transform()“ in Pandas verwenden:
grouped = df.groupby('name').mean() df["value"] = df.groupby("name").transform(lambda x: x.fillna(x.mean()))
Die Funktion „groupby()“ erstellt Gruppen basierend auf der Spalte „Name“ und „mean()“ berechnet den Mittelwert Wert für jede Gruppe. Die Funktion transform() wendet diesen Mittelwert auf jede Zeile innerhalb jeder Gruppe an und füllt die fehlenden Werte aus.
Der resultierende DataFrame:
print(df) name value 0 A 1 1 A 1 2 B 2 3 B 2 4 B 3 5 B 1 6 C 3 7 C 3 8 C 3
Erklärung:
Alternative Lösung:
Ein weiterer Ansatz zur gruppenbasierten Imputation fehlender Werte ist:
impute_cols = ['value'] df[impute_cols] = df[impute_cols].fillna(df.groupby('name')[impute_cols].transform('mean'))
Beide Methoden erzielen das gleiche Ergebnis, der letztere Ansatz bietet jedoch mehr Flexibilität bei der Imputation mehrerer Spalten.
Das obige ist der detaillierte Inhalt vonWie kann man fehlende Werte in Pandas mithilfe von Gruppenmitteln imputieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!