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

Pandas严格替换值问题:特定字符串替换结果异常的排查与解决

解决Pandas中替换特殊字符串值时计数异常的问题

我最近碰到个棘手的小问题:数据集里有大量格式为" - "的特殊值需要替换成"0.0"。一开始我在Jupyter里用这段代码确认特殊值的数量,结果是正常的59行:

df['Block Hours'][df['Block Hours'] == " - "].count()

可当我尝试用str.replace替换后再计数时,结果却变成了4万多行,完全偏离预期:

df['Block Hours'].str.replace(" - ", "0.0").count()

我用的是最新版Pandas,甚至特意加了regex=False参数,问题还是没解决。

问题根源

折腾半天后才发现,问题出在列的数据类型上!df['Block Hours']的类型是object,但并不是所有元素都是字符串类型——这就导致str.replace的行为跑偏了,它会把非字符串类型的元素也纳入计数范围,最终给出错误的总行数。

解决方案

解决思路很直接:先把整个列强制转换为字符串类型,再执行替换操作:

df['Block Hours'] = df['Block Hours'].astype(str).str.replace(" - ", "0.0")

这么操作之后,替换和计数就都能得到正确结果了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:10:16