首页 > 解决方案 > Python; 当int太大时如何将字符串转换为int?

问题描述

我有一个熊猫系列,其中每一列都是“对象”,我想将其中一些转换为整数。它不适用于数字太大的列,我收到错误“int太大而无法转换”。

我已经通过网络和论坛进行了搜索,但我不明白各种答案,我对 Python 还很陌生。我知道我的“数字”太长了……我不明白为什么 Python 有这个问题……例如将数据框导出到 excel 文件中就可以了,然后我可以在没有任何数据的情况下制作数据透视表问题(excel将数字识别为整数)但我真的希望能够在Python中做到这一点......

这里的代码

ex_numb = 2461401487610497195867
np.uint64(ex_numb)

---------------------------------------------------------------------------
OverflowError                             Traceback (most recent call last)
<ipython-input-109-e8c58111a107> in <module>
      1 ex_numb = 2461401487610497195867
----> 2 np.uint64(ex_numb)

OverflowError: int too big to convert


导入系统 sys.maxsize

9223372036854775807

标签: pythonpandasdataframeinteger

解决方案


似乎问题正在使用np.uint,因为它最多只能处理 64 位,您可以np.int改用:

import numpy as np
ex_numb = 2461401487610497195867
ex_np = np.int(ex_numb)
ex_np.bit_length()

哪个输出:

72

要在 pandas 中使用它,您可以将其作为 numpy 数组传递:

pd.DataFrame(np.array([[ex_numb]]))

推荐阅读