Heim >Backend-Entwicklung >Python-Tutorial >Wie kann man fehlende Werte in Pandas mithilfe von Gruppenmitteln imputieren?

Wie kann man fehlende Werte in Pandas mithilfe von Gruppenmitteln imputieren?

Susan Sarandon
Susan SarandonOriginal
2024-12-05 16:29:10620Durchsuche

How to Impute Missing Values in Pandas Using Group Means?

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:

  • Die Funktion „mean()“ berechnet den Mittelwert innerhalb jeder Gruppe, was zu einem neuen DataFrame mit gruppiert führt bedeutet.
  • Die Funktion transform() wendet die Methode fillna() auf jede Gruppe an und verwendet dabei den Mittelwert als Füllwert. Dadurch werden die fehlenden Werte mit dem für jede Gruppe spezifischen Mittelwert aufgefüllt.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn