Pandas read_hdf给出了“只能在表上使用迭代器或chunksize”错误

2024-09-28 01:32:57 发布

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

我有一个h5数据文件,其中包括rawreport

我可以读取rawreport并使用read_hdf(filename, "rawreport")保存为数据帧,没有任何问题。但是数据有1700万行,我想使用分块

当我运行这个代码时

chunksize = 10**6
someval = 100
df = pd.DataFrame()
for chunk in pd.read_hdf(filename, 'rawreport',  chunksize=chunksize, where='datetime < someval'):
    df = pd.concat([df, chunk], ignore_index=True)

我得到“TypeError:只能在表上使用迭代器或chunksize”

{}不是表意味着什么?我如何克服这个问题?我不是创建h5文件的人


Tags: 数据代码dataframedfread数据文件filename分块
1条回答
网友
1楼 · 发布于 2024-09-28 01:32:57

只有使用PyTables以表格格式写入文件时,才能进行分块。必须在首次写入文件时指定此选项:

df.to_hdf('rawreport', format = 'table')

如果在编写文件时没有指定,那么Pandas默认使用fixed格式。这意味着,虽然文件可以在以后快速写入和读取,但这确实意味着必须将整个数据帧读入内存。不幸的是,这意味着这里不能使用read_hdf中的分块和其他选项来指定特定的行或列

相关问题 更多 >

    热门问题