使用變換用組均值填充缺失值
在包含缺失值的 DataFrame 中,通常用有意義的值填充它們。一種方法是計算每個組的平均值。
考慮以下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'] })
目標是用各自「NaN」值中的平均值填入所有「NaN」值
為了實現這一點,我們可以將轉換函數與groupby 操作結合使用。轉換函數對每個群組套用指定的轉換,而 groupby 操作則根據特定欄位(在本例中為「名稱」)將 DataFrame 拆分為群組。
解如下:
grouped = df.groupby("name").mean() df["value"] = df.groupby("name").transform(lambda x: x.fillna(x.mean()))
fillna 函數以指定值(在本例中為平均值)填入缺失值。 lambda 函數確保在填充之前計算每個組的平均值。
產生的 DataFrame 將使用每組的平均值填充缺失值:
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中文網其他相關文章!