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

Pandas中DataFrame修改不生效:如何永久将指定列NaN替换为0?

解决Pandas中fillna修改不生效的问题

嘿,刚学Pandas的时候我也踩过这个坑!你现在的代码执行后没改动原DataFrame,是因为fillna()默认会返回一个修改后的副本,并不会直接改动原来的inked数据。要让修改永久生效,有两种简单靠谱的方法:

方法一:用inplace=True参数原地修改

直接在原数据的切片上完成修改,不需要额外赋值:

inked.loc[:,'AA':'DD'].fillna(0, inplace=True)

不过要注意,inplace=True会直接修改原数据,没法撤销操作,要是需要保留原始数据的话,建议先备份再用这个方法。

方法二:重新赋值给原DataFrame的对应列

把修改后的结果重新覆盖到inked的AA到DD列,这种方式更直观,也方便后续排查问题:

inked.loc[:,'AA':'DD'] = inked.loc[:,'AA':'DD'].fillna(0)

这样操作后,再调用inked.head()就能看到NaN已经被替换成0啦。

简单总结下:Pandas里大多数数据处理方法默认都是返回副本,想要让修改生效,要么用inplace=True原地修改,要么把结果重新赋值给原变量~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:49:15