首页 >后端开发 >Python教程 >如何使用'transform”用组均值填充缺失的 DataFrame 值?

如何使用'transform”用组均值填充缺失的 DataFrame 值?

Patricia Arquette
Patricia Arquette原创
2024-12-27 07:26:13132浏览

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

使用变换用组均值填充缺失值

在包含缺失值的 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn