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
Freigeben: 2024-12-05 16:29:10
Original
608 Leute haben es durchsucht

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']})
Nach dem Login kopieren

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()))
Nach dem Login kopieren

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
Nach dem Login kopieren

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'))
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage