首页 > 后端开发 > Python教程 > 如何用群体均值填充 Pandas 中的缺失值?

如何用群体均值填充 Pandas 中的缺失值?

Linda Hamilton
发布: 2024-12-11 12:58:11
原创
519 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板