簡體   English   中英

追加大熊貓的to_hdf倍數H5文件大小的行?

[英]appending rows with pandas' to_hdf multiples H5 file size?

我有一個大約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因為試圖添加到其中一列的數據比聲明的列長(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

我仔細檢查了兩個文件中的行數,它們相等。

我是否以錯誤的方式附加新行,從而導致每次附加操作都使文件大小倍增? 在這里進行了Google搜索和搜索,但認為以前沒有討論過,或者我搜索的關鍵字錯誤。

任何幫助表示贊賞。

更新:我嘗試根據此線程中的建議為附加行中的所有數據列添加min_itemsizepandas pytables append:性能和文件大小的增加

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 \
                 )

但仍然不會減小文件大小。

感謝您提出增加壓縮的建議,附加文件和新轉儲文件均未按要求進行壓縮。

我曾經從pandas DataFrame保存.h5文件。 嘗試將complib='blosc'complevel=9to_hdf()函數。 這將減小文件的大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM