使用HDFStore保存的空pandas DataFrame会生成非常大的HDF文件

时间:2015-11-11 19:55:35

标签: python pandas pytables hdf

使用pandas HDFStore存储空DataFrame会占用大量磁盘空间。这是一个例子:

import pandas as pd

for i in range(1000):
    with pd.HDFStore('/tmp/test_empty.hdf') as s:
        key = 'E{:03d}'.format(i)
        s[key] = pd.DataFrame()

for i in range(1000):
    with pd.HDFStore('/tmp/test_nan.hdf') as s:
        key = 'N{:03d}'.format(i)
        s[key] = pd.DataFrame([pd.np.nan])

文件大小:

$ ls -lh /tmp/test_empty.hdf /tmp/test_nan.hdf
.... 2.0G Nov 11 11:47 /tmp/test_empty.hdf
.... 5.5M Nov 11 11:47 /tmp/test_nan.hdf

包含单个NaN的1000个DataFrame消耗的空间比空的1000个DataFrame少大约400倍。是否有更有效的方法来标记HDFStore中的密钥? (空直观的DataFrame消耗了太多空间,这是非直观的。)

0 个答案:

没有答案