Heim >Backend-Entwicklung >Python-Tutorial >Wie füllt man fehlende Werte in Pandas mit dem Gruppenmittelwert?

Wie füllt man fehlende Werte in Pandas mit dem Gruppenmittelwert?

Linda Hamilton
Linda HamiltonOriginal
2024-12-11 12:58:11593Durchsuche

How to Fill Missing Values in Pandas with the Group Mean?

Füllen fehlender Werte nach Mittelwert in jeder Gruppe in Pandas

In diesem Zusammenhang besteht Ihr Ziel darin, fehlende Werte ("NaN" ) mit dem Mittelwert für jede einzelne Gruppe in der Spalte „Name“. Um dies zu erreichen, können Sie die Transformationsfunktion von Pandas in Verbindung mit der Fillna-Methode verwenden.

Betrachten wir den bereitgestellten Beispiel-DataFrame:

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']
})

# Original DataFrame
print(df)

Um den Mittelwert innerhalb jedes „Namens“ zu berechnen Group können Sie die Groupby-Funktion verwenden:

grouped = df.groupby('name').mean()

Gruppiert ist jedoch ein DataFrame, der die Mittelwerte enthält, und wir müssen ihn wieder auf die Gruppe anwenden Original-DataFrame, um die fehlenden Werte auszufüllen. Hier wird die Transformation nützlich:

df["value"] = df.groupby("name").transform(lambda x: x.fillna(x.mean()))

Hier ist eine Aufschlüsselung des Codes:

  • df.groupby("name") gruppiert den DataFrame nach der Spalte „Name“.
  • lambda x: x.fillna(x.mean()) definiert eine anonyme Funktion, die jede Gruppe übernimmt (dargestellt durch x) als Eingabe und führt die folgende Operation aus:

    • Es füllt fehlende Werte („NaN“) mit dem mit x.mean() berechneten Mittelwert auf.
  • df["value"] ersetzt die Spalte „value“ im ursprünglichen DataFrame durch die transformierten Werte, die die fehlenden Werte auffüllen.

Danach Wenn Sie den Code ausführen, enthält der resultierende DataFrame die ausgefüllten Werte wie gewünscht:

# Adjusted DataFrame
print(df)

Das obige ist der detaillierte Inhalt vonWie füllt man fehlende Werte in Pandas mit dem Gruppenmittelwert?. 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