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

如何移除DataFrame中的NaN值?fillna填充均值失效问题排查

问题排查与解决方法

你的操作存在核心逻辑错误,是导致fillna不生效、返回空记录的直接原因:

  • pandas 中绝大多数 DataFrame 处理方法默认不会修改原始数据,而是返回修改后的新副本。你两次调用fillna()既没有将返回结果赋值回原变量,也没有开启原地修改参数,所以原数据集里的NaN值不会发生任何变化。
  • 第一次调用加.head()返回0条记录,先执行print(len(cleaned_customer_data))检查数据集本身行数,如果行数为0,说明你之前做数据筛选、切片的步骤把所有数据过滤空了,和fillna操作本身无关。
  • 额外注意:如果数据集包含非数值类型列,直接调用.mean()会触发警告,部分pandas版本中会直接跳过所有列的均值计算,导致填充失效。

正确代码写法

两种写法二选一即可,官方更推荐第一种写法,能避免inplace参数带来的链式操作隐患:

  1. 接收返回值重新赋值
# 仅针对数值列计算均值填充NaN
cleaned_customer_data = cleaned_customer_data.fillna(cleaned_customer_data.mean(numeric_only=True))
# 查看前5行验证结果
print(cleaned_customer_data.head())
  1. 开启原地修改参数
cleaned_customer_data.fillna(cleaned_customer_data.mean(numeric_only=True), inplace=True)
print(cleaned_customer_data.head())

效果验证

针对你给出的FEATURE1列样本,有效数值为2.0和1.294,计算得均值为1.647,填充后结果如下:

FEATURE1
0     1.647
1     2.000
2     1.647
3     1.647
4     1.647
5     1.294

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 01:45:42