Heim >Backend-Entwicklung >Python-Tutorial >Wie fülle ich fehlende DataFrame-Werte mithilfe von „transform' mit Gruppenmitteln?

Wie fülle ich fehlende DataFrame-Werte mithilfe von „transform' mit Gruppenmitteln?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-27 07:26:13132Durchsuche

How to Fill Missing DataFrame Values with Group Means Using `transform`?

Fehlende Werte mit Gruppenmittelwert mithilfe der Transformation füllen

In einem DataFrame mit fehlenden Werten ist es üblich, diese mit einem aussagekräftigen Wert zu füllen. Ein Ansatz besteht darin, den Mittelwert für jede Gruppe zu berechnen.

Bedenken Sie den folgenden 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']
})

Das Ziel besteht darin, alle „NaN“-Werte mit dem Mittelwert innerhalb ihrer jeweiligen „ name"-Gruppen.

Um dies zu erreichen, können wir die Transformationsfunktion in Kombination mit der Groupby-Operation verwenden. Die Transformationsfunktion wendet eine bestimmte Transformation auf jede Gruppe an, während die Groupby-Operation den DataFrame basierend auf einer bestimmten Spalte (in diesem Fall „Name“) in Gruppen aufteilt.

Hier ist die Lösung:

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

Die Funktion fillna füllt fehlende Werte mit dem angegebenen Wert (in diesem Fall dem Mittelwert). Die Lambda-Funktion stellt sicher, dass der Mittelwert für jede Gruppe vor dem Füllen berechnet wird.

Im resultierenden DataFrame werden die fehlenden Werte mit dem Mittelwert für jede Gruppe gefüllt:

  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

Das obige ist der detaillierte Inhalt vonWie fülle ich fehlende DataFrame-Werte mithilfe von „transform' mit Gruppenmitteln?. 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