使用变换用组均值填充缺失值
在包含缺失值的 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中文网其他相关文章!