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

Pandas整数Series执行幂运算时结果异常问题咨询

Pandas整数型Series幂运算结果异常的原因

在标准Python中计算42**42可得到正确结果:150130937545296572356771972164254457814047970568738777235893533016064。但在Pandas中,浮点型Series执行s**42结果正常,整数型Series执行该运算时结果明显错误,示例代码如下:

# Pandas series, float dtype
s = pd.Series([12, 42], index=range(2), dtype=float)
s**42
# 0    2.116471e+45
# 1    1.501309e+68
# dtype: float64

# Pandas series, integer dtype
s = pd.Series([12, 42], index=range(2), dtype=int)
s**42
# 0                      0
# 1    4121466560160202752
# dtype: int64

原因分析

  • 标准Python的int是任意精度整数,会根据数值大小自动扩展存储空间,因此能精准计算并存储超大整数结果。
  • Pandas的整数型Series默认使用固定宽度的int64类型,它的取值上限为9223372036854775807,而42**42的结果远超出这个范围,运算时发生整数溢出,超出部分被截断,最终得到错误的结果。
  • 浮点型Series采用float64类型,虽然它的整数精度有限(只能精确表示到2^53以内的整数),但支持用科学计数法表示更大范围的数值,所以结果看起来“正常”(注意这只是近似值,并非精确整数)。

内容的提问来源于stack exchange,提问作者Jérôme

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 18:04:49