如何使用分组均值填充DataFrame(df)中的NaN缺失值
你可以通过pandas的分组均值转换逻辑实现需求,代码如下:
# 筛选所有数值型列,也可手动指定需要填充的列名列表 numeric_cols = df.select_dtypes(include='number').columns # 按TFOPWG Disposition分组,用对应组的列均值填充该组内的缺失值 df[numeric_cols] = df.groupby('TFOPWG Disposition')[numeric_cols].transform( lambda col: col.fillna(col.mean()) )
相关说明:
- 该方法会保留原数据集的索引和行列结构,不会因为分组操作打乱数据顺序
- 仅对数值型列做填充处理,不会修改
TFOPWG Disposition这类分类列的取值 - 如果某一分组下某一列全为NaN,填充后该列对应分组的缺失值仍会保留NaN,你可根据需要补充全局均值填充的兜底逻辑,示例如下:
# 兜底用全局均值填充剩余的NaN(可选) df[numeric_cols] = df[numeric_cols].fillna(df[numeric_cols].mean())
内容的提问来源于stack exchange,提问作者Umang Gada
相关产品推荐
相关产品推荐

