带着大Pandas飞过地球

2024-05-29 01:53:33 发布

您现在位置:Python中文网/ 问答频道 /正文

这里是Python新手。在

我试图用lz4压缩将一个大数据帧保存到HDF文件中。在

我用的是windows10,python3,Pandas 20.2

我得到错误“overflowerr:Python int too large to convert to C long”。在

没有任何计算机资源接近其限制(RAM、CPU、交换使用率)

以前的文章讨论了dtype,但是下面的例子显示还有一些其他问题,可能与大小有关?在

import numpy as np
import pandas as pd


# sample dataframe to be saved, pardon my French 
n=500*1000*1000
df= pd.DataFrame({'col1':[999999999999999999]*n,
                  'col2':['aaaaaaaaaaaaaaaaa']*n,
                  'col3':[999999999999999999]*n,
                  'col4':['aaaaaaaaaaaaaaaaa']*n,
                  'col5':[999999999999999999]*n,
                  'col6':['aaaaaaaaaaaaaaaaa']*n})

# works fine
lim=200*1000*1000
df[:lim].to_hdf('df.h5','table', complib= 'blosc:lz4', mode='w')

# works fine
lim=300*1000*1000
df[:lim].to_hdf('df.h5','table', complib= 'blosc:lz4', mode='w')


# Error
lim=400*1000*1000
df[:lim].to_hdf('df.h5','table', complib= 'blosc:lz4', mode='w')


....
OverflowError: Python int too large to convert to C long

Tags: toconvertdfmodetableinttooh5

热门问题