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

Pandas新增数字各位求和列触发ValueError:int()转换空格错误如何解决

问题解决方案

报错根因

你编写的代码直接对整列serie['num'](pandas Series对象)执行str()转换,返回的是Series的格式化打印字符串,包含索引、元素分隔空格、换行符等非数字字符,执行map(int, ...)时碰到非数字字符就会抛出ValueError。

正确实现方式

方法1:逐行apply处理(易理解,适合中小数据集)

直接对每一行的num值单独处理,转字符串后逐位求和:

import pandas as pd

serie = pd.DataFrame({'num':[133,2342,313,4495,4939,19081993,80]})

serie['sum_num'] = serie['num'].apply(lambda x: sum(int(d) for d in str(x)))

运行后输出结果:

num  sum_num
0       133        7
1      2342       11
2       313        7
3      4495       22
4      4939       25
5  19081993       40
6        80        8

方法2:向量化处理(高性能,适合超大数据集)

用pandas原生字符串向量化操作,避免apply的循环开销:

serie['sum_num'] = serie['num'].astype(str).str.split('').explode().astype(int).groupby(level=0).sum()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 13:12:04