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

Pandas中大整数高精度求和异常,求解决方案

解决Pandas处理超大整数求和的问题

问题场景

读取包含超大整数的CSV文件my_file_lg_int时,Pandas自动将超长整数识别为字符串,直接求和会得到字符串拼接结果;指定dtype=int读取又会触发溢出错误。

输入文件内容:

my_int
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222

执行原代码:

import pandas as pd
file = 'my_file_lg_int'
data = pd.read_csv(file)
print(data['my_int'].sum())

得到错误结果(字符串拼接):

111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222

解决方案

核心思路是利用Python原生int支持任意精度的特性,绕过NumPy整数的大小限制。

方法一:先以object类型读取,再转换为Python原生整数求和

import pandas as pd

file = 'my_file_lg_int'
# 以object类型读取,避免自动转字符串或溢出
data = pd.read_csv(file, dtype={'my_int': object})
# 将每个元素转为Python原生int后求和
total = data['my_int'].apply(int).sum()
print(total)

方法二:读取时直接用转换器转换为原生整数

import pandas as pd

file = 'my_file_lg_int'
# 读取时直接将字符串转为Python原生int
data = pd.read_csv(file, converters={'my_int': int})
total = data['my_int'].sum()
print(total)

两种方法都能得到正确的求和结果:333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 06:00:48