1

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 が非常に多くのスペースを消費することは直感的ではありません。)

4

1 に答える 1

0

同じ問題が発生し、DataFrame に空の列を 1 つ追加することになりました。

df = pd.DataFrame({'': []})
df.to_hdf('file_name.hdf', 'key')

ロード後、この DataFrame が空かどうかを確認するのは簡単です

df_loaded = pd.read_hdf("file_name.hdf", "key")
df_loaded.empty # True
于 2021-11-10T16:18:53.940 に答える