h5 ファイルと hdf ファイルの違いは何ですか? どちらか一方を使用する必要がありますか?次の 2 つのコードで timeit を実行してみましたが、240 MB のファイルでループごとに約 3 分 29 秒かかりました。最終的に 2 番目のコードでエラーが発生しましたが、ファイル サイズがディスク上で 300 MB を超えていました。
hdf = pd.HDFStore('combined.h5')
hdf.put('table', df, format='table', complib='blosc', complevel=5, data_columns=True)
hdf.close()
df.to_hdf('combined.hdf', 'table', format='table', mode='w', complib='blosc', complevel=5)
また、次のようなエラー メッセージが表示されました。
your performance may suffer as PyTables will pickle object types that it cannot
map directly to c-types
これは、空白値のためにオブジェクトである文字列列が原因です。.astype(str) を実行すると、すべての空白が nan (出力ファイルにも表示される文字列) に置き換えられます。エラー メッセージが気になり、空欄を埋めて後で再度 np.nan に置き換えますか、それとも単に無視しますか?
null を持つ列がいくつかあることを示す df.info() を次に示します。これらの行を削除することはできませんが、必要に応じて一時的に何かを入力することはできます。
<class 'pandas.core.frame.DataFrame'>
Int64Index: 1387276 entries, 0 to 657406
Data columns (total 12 columns):
date 1387276 non-null datetime64[ns]
start_time 1387276 non-null datetime64[ns]
end_time 313190 non-null datetime64[ns]
cola 1387276 non-null object
colb 1387276 non-null object
colc 1387276 non-null object
cold 476816 non-null object
cole 1228781 non-null object
colx 1185679 non-null object
coly 313190 non-null object
colz 1387276 non-null int64
colzz 1387276 non-null int64
dtypes: datetime64[ns](3), int64(2), object(7)
memory usage: 137.6+ MB