You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何按指定列分组均值填充另一列的NaN缺失值

Pandas实现按分组均值填充列缺失值

你可以直接用pandas内置的分组变换功能完成需求,不需要写自定义循环,代码简洁且运行效率高。

实现步骤

  • 导入数据处理依赖库pandas和numpy(用于生成缺失值标识)
  • 按Bedroom字段分组,计算每组内Bathroom字段的非缺失值均值,通过transform方法把均值映射回原表每一行
  • 用映射得到的分组均值填充Bathroom字段的NaN值

完整可运行代码

import pandas as pd
import numpy as np

# 构造提供的样例数据集
df = pd.DataFrame({
    'Bathroom': [1, 2, 1, 2, np.nan, np.nan],
    'Bedroom': [1, 2, 2, 3, 2, 3]
})

# 核心逻辑:生成分组均值对齐序列,填充缺失值
df['Bathroom'] = df['Bathroom'].fillna(
    df.groupby('Bedroom')['Bathroom'].transform('mean')
)

结果验证

运行代码后输出的数据集如下,完全符合给定的填充规则:

BathroomBedroom
1.01
2.02
1.02
2.03
1.52
2.03

补充说明

  • transform('mean')会自动排除每组内的NaN值计算均值,不需要额外手动过滤非缺失条目
  • 如果存在某组Bathroom字段全为缺失值的场景,对应位置填充后仍为NaN,可以在上述代码后追加全局均值填充做兜底:
    # 全列缺失场景兜底填充
    df['Bathroom'] = df['Bathroom'].fillna(df['Bathroom'].mean())
    

内容的提问来源于stack exchange,提问作者Aman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 09:39:57