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

pandas执行fillna(0)填充后iloc取数仍出现NaN值原因咨询

异常根因

  • pandas的fillna方法默认不会修改原始DataFrame,仅会返回一个完成空值填充的新对象。你执行df1.fillna(0)时看到的输出是临时返回的新对象内容,并没有改动原df1,原df1中第409行Marge列仍然是NaN值。
  • 后续你基于未修改的原df1用iloc提取列时,自然会取出NaN值,后续需要传入纯有效数值的操作(比如模型训练、数值计算等)检测到NaN后,就触发了你遇到的报错:

ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

修复方案

两种写法任意选择即可让填充生效:

  1. 将填充后的结果赋值覆盖原变量
df1 = df1.fillna(0)
  1. 调用时添加inplace=True参数直接修改原始对象
df1.fillna(0, inplace=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 17:21:00