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

Pandas处理含DIV0的列求和后得到空列的问题求助

问题原因与解决方案

原因分析

你通过pd.to_numeric(errors="coerce")将DIV0转换为了pandas的缺失值(NaN),但pandas中**NaN与任何数值进行算术运算的结果都会是NaN**,所以直接执行df["A"] + df["B"]会得到全为NaN的C列,也就是你看到的“空列”。

解决方案

可以通过两种方式实现预期的求和逻辑:

方法一:先填充缺失值再相加

将转换后的NaN替换为0,再执行加法:

import pandas as pd

df = pd.DataFrame({
    "A": [2, 3, 5, "DIV0"],
    "B": ["DIV0", "DIV0", "DIV0", 3]
})

df["A"] = pd.to_numeric(df["A"], errors="coerce").fillna(0)
df["B"] = pd.to_numeric(df["B"], errors="coerce").fillna(0)
df["C"] = df["A"] + df["B"]

方法二:使用add方法指定填充值

利用pandas的add方法,在相加时自动将NaN替换为0,无需提前填充:

import pandas as pd

df = pd.DataFrame({
    "A": [2, 3, 5, "DIV0"],
    "B": ["DIV0", "DIV0", "DIV0", 3]
})

df["A"] = pd.to_numeric(df["A"], errors="coerce")
df["B"] = pd.to_numeric(df["B"], errors="coerce")
df["C"] = df["A"].add(df["B"], fill_value=0)

结果验证

两种方法执行后,都会得到你预期的C列取值:2、3、5、3。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 11:22:50