pandas.read_excel()输出OverflowError: Python int太大,无法转换为C int

3

我正在使用Ubuntu 18.04,pandas==1.2.1。

我的Excel文件大致如下:

seq           userid      point     .....
2.01e^+12       A        231231.15
2.012e^+12      B          123
2.0131e^+12     C           3
2.41e^+12       D         2312
2.41e^+12       E         31.15

max(seq) = 2.41e^+12 max(point) = 231231.15

当我运行 pd.read_excel("file_name.xlsx") 时,输出了标题中的错误信息。

来自资源:

  1. OverflowError: Python int too large to convert to C long torchtext.datasets.text_classification.DATASETS['AG_NEWS']() -> 提示我需要将 csv.field_size_limit 更改为 sys.maxsize,但我不知道如何更改 excel.field_size_limit。

  2. "OverflowError: Python int too large to convert to C long" on windows but not mac -> 告诉我需要将 seq 和 point 列设置为浮点型数据类型。我使用 pd.read_excel("file_name.xlsx", converters={'seq':float, "point":float}) 进行了更改,但这并没有解决问题。

当我删除两个浮点列时,就可以读取 Excel 文件。如何解决这个错误?


你能解释一下资源 #1 吗?不确定你所说的“无法弄清如何更改 r”是什么意思。 - user1558604
#2 应该可以工作,但如果它们是整数,我会使用 "UInt64" 的 dtype 而不是 float。 - user1558604
@user1558604 你是说要像这样使用 dtype 参数 pd.read_excel(dtype="UInt64") 吗?但它会输出相同的错误信息,而且对于 dtype=str、int 和 float 也是如此。 - haneulkim
是的,那应该可以运行...你是用的32位还是64位的Python? - user1558604
@haneulkim 我也遇到了同样的问题。你是怎么解决的? - ahmed roshdy
显示剩余6条评论
1个回答

0
如果您在 pydata.org 上查看导入数据的选项,您会发现像 convert_dates=True 这样的选项,您可以将其打开或关闭,直到文件读取正确。假设有问题的数据是日期。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接