首頁 >後端開發 >Python教學 >如何用群體平均值填滿 Pandas 中的缺失值?

如何用群體平均值填滿 Pandas 中的缺失值?

Linda Hamilton
Linda Hamilton原創
2024-12-11 12:58:11481瀏覽

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

以Pandas 中每組的平均值填入缺失值

在這種情況下,您的目標是填入缺失值( “NaN” )與“名稱”欄中每個不同組別的平均值。為了實現這一點,您可以將 Pandas 的轉換函數與 fillna 方法結合使用。

讓我們考慮提供的範例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)

計算每個「名稱」內的平均值group,你可以使用groupby函數:

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

但是,grouped是一個包含平均值的DataFrame,我們需要將其套用回原始DataFrame 以填入缺失值。這就是轉換變得有用的地方:

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

這是程式碼的細分:

  • df.groupby("name") 按「name」列對DataFrame 進行分組。
  • lambda x: x.fillna(x.mean()) 定義一個匿名函數,它接受每個群組(由x 表示)作為輸入並執行以下操作:

    • 它用使用x.mean() 計算的平均值填充缺失值(“NaN”)。
  • df["value"] 將原始DataFrame 中的「value」欄位替換為填入缺失值的轉換值

執行程式碼後,產生的DataFrame 將包含所需的填充值:

# Adjusted DataFrame
print(df)

以上是如何用群體平均值填滿 Pandas 中的缺失值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn