0

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
4

0 に答える 0