You need to enable JavaScript to run this app. 如何在DataFrame运算中将NaN值替换为指定数值
优惠活动
大模型
产品
解决方案
定价
更多

如何在DataFrame运算中将NaN值替换为指定数值

实现方法
  • 核心逻辑:pandas中默认NaN参与算术运算返回NaN,只需在运算时将NaN视为0即可达成NaN+数值=对应数值的效果,推荐使用pandas内置向量化操作实现,无需手动遍历元素,效率更高。

方法1:直接使用add()方法(最优)

通过add()方法的fill_value参数指定NaN的替换值为0,一行代码即可完成需求,非数值内容(如示例中的-)会自动保留不受影响:

DF1 = DF1.add(2.0, fill_value=0)

方法2:先填充NaN再运算

先通过fillna()将所有NaN替换为0,再执行加法操作:

DF1 = DF1.fillna(0) + 2.0

如果你的DataFrame包含非数值列,可仅对数值列操作避免报错:

# 筛选所有数值列
num_cols = DF1.select_dtypes(include='number').columns
# 仅对数值列执行加2操作,NaN替换为0计算
DF1[num_cols] = DF1[num_cols].add(2.0, fill_value=0)

原有代码问题说明

你写的循环逻辑本身存在错误:for ele in DF1默认遍历的是DataFrame的列名,而非单元格元素,无法实现逐元素加2的效果,pandas处理表格数据优先使用内置向量化方法,无需手动写循环。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 17:45:02