首頁 > 後端開發 > Python教學 > 如何使用「transform」用群組平均值填入缺少的 DataFrame 值?

如何使用「transform」用群組平均值填入缺少的 DataFrame 值?

Patricia Arquette
發布: 2024-12-27 07:26:13
原創
225 人瀏覽過

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

使用變換用組均值填充缺失值

在包含缺失值的 DataFrame 中,通常用有意義的值填充它們。一種方法是計算每個組的平均值。

考慮以下DataFrame:

1

2

3

4

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

})

登入後複製

目標是用各自「NaN」值中的平均值填入所有「NaN」值

為了實現這一點,我們可以將轉換函數與groupby 操作結合使用。轉換函數對每個群組套用指定的轉換,而 groupby 操作則根據特定欄位(在本例中為「名稱」)將 DataFrame 拆分為群組。

解如下:

1

2

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

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

登入後複製

fillna 函數以指定值(在本例中為平均值)填入缺失值。 lambda 函數確保在填充之前計算每個組的平均值。

產生的 DataFrame 將使用每組的平均值填充缺失值:

1

2

3

4

5

6

7

8

9

10

  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

登入後複製

以上是如何使用「transform」用群組平均值填入缺少的 DataFrame 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板