gpt4 book ai didi

python - 追加带有 pandas' to_hdf 的行是 H5 文件大小的倍数吗?

转载 作者:太空宇宙 更新时间:2023-11-03 17:52:18 25 4
gpt4 key购买 nike

我有一个大约 13,000 行 × 5 列的 HDF5,随着时间的推移,这些行通过 DF.to_hdf(Filename, 'df',append=True, format='table') 这是大小:

-rw-r--r--  1 omnom  omnom   807M Mar 10 15:55 Final_all_result.h5

最近我收到了 ValueError,因为我尝试 append 到其中一列的数据长于声明的列大小(2000,使用 min_itemsize)。

因此,我将所有行加载到内存中,并将它们一次性转储到新的 HDF 文件中:

DF.to_hdf(newFilename, \
'df', \
mode='a', \
data_columns=['Code', 'ID', 'Category', 'Title', 'Content'], \
format='table', \
min_itemsize={'index': 24, \
'Code': 8, \
'ID': 32, \
'Category': 24, \
'Title': 192, \
'Content':5000 \
} \
)

我真的很惊讶新文件的大小大约是原始文件的 1/10:

-rw-r--r--  1 omnom  omnom    70M Mar 10 16:01 Final_all_result_5000.h5

我仔细检查了两个文件中的行数,它们是相等的。

我是否以错误的方式 append 新行,导致每次 append 操作时文件大小成倍增加?用谷歌搜索并在这里搜索,但我认为以前没有讨论过这个问题,或者我可能使用了错误的关键字进行搜索。

感谢任何帮助。

更新:我尝试在此线程中的每个建议的 append 行中为所有数据列添加 min_itemsize:pandas pytables append: performance and increase in file size :

DF.to_hdf(h5AbsPath, \
'df', \
mode='a', \
data_columns=['Code', 'ID', 'Category', 'Title', 'Content'], \
min_itemsize={'index': 24, \
'Code': 8, \
'ID': 32, \
'Category': 24, \
'Title': 192, \
'Content':5000 \
}, \
append=True \
)

但它仍然没有减少文件大小。

感谢添加压缩的建议, append 文件和新转储的文件都不会根据要求进行压缩。

最佳答案

我曾经从 pandas DataFrame 保存 .h5 文件。尝试将 complib='blosc'complevel=9 添加到 to_hdf() 函数。这应该会减小文件大小。

关于python - 追加带有 pandas' to_hdf 的行是 H5 文件大小的倍数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28959424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com