python

您所在的位置:网站首页 h5文件大小 python

python

2024-06-03 16:02| 来源: 网络整理| 查看: 265

我有一个大约 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/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3