【问题标题】:Create dataframe of too long integers [duplicate]创建太长整数的数据框[重复]
【发布时间】:2017-11-14 11:59:16
【问题描述】:

我正在尝试创建应该包含很长整数的数据框。我的代码如下:

import pandas as pd

data = [123456789123456789123456789123456789123456789, 
123456789123456789123456789123456789123456789]
cols = ['Col1', 'Col2']
df = pd.DataFrame(data, columns=cols)
print(df)

但我收到以下错误:

Traceback (most recent call last):
File "/home/watson/Desktop/test.py", line 5, in <module>
    df = pd.DataFrame(data, columns=cols)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", 
line 330, in __init__
    copy=copy)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", 
line 463, in _init_ndarray
    values = _prep_ndarray(values, copy=copy)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", 
line 5578, in _prep_ndarray
    values = convert(values)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", 
line 5567, in convert
    return maybe_convert_platform(v)
File "/usr/local/lib/python2.7/dist-
packages/pandas/core/dtypes/cast.py", line 47, in 
maybe_convert_platform
    values = lib.maybe_convert_objects(values)
File "pandas/_libs/src/inference.pyx", line 1165, in 
pandas._libs.lib.maybe_convert_objects (pandas/_libs/lib.c:58498)
    OverflowError: long int too large to convert

【问题讨论】:

标签: python pandas


【解决方案1】:

您可以通过设置dtype=object 来避免该错误。此外,您的示例中有错字,并且由于您指定了两列,因此传递了错误的形状数据。以下行有效:

df = pd.DataFrame([data], columns=cols, dtype=object)

注意:我将您的数据包装在一个列表中以使其尺寸正确。如果我不这样做,它会给出OverflowError,即使它真的应该给出关于传递值的形状的ValueError

In [1]: df = pd.DataFrame([data], columns=cols, dtype=object)

In [2]: df
Out[2]:
                                            Col1  \
0  123456789123456789123456789123456789123456789

                                            Col2
0  123456789123456789123456789123456789123456789

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    相关资源
    最近更新 更多