pandasデータフレームの1.5 Gbリストが与えられます。
このデータのロードを処理するためのより良いアプローチはどれですか:pickle(cPickle経由)、hdf5、またはPythonの何か?
まず、データを「ダンプ」するのに時間がかかりますが、これは1回だけです。
私もnotディスク上のファイルサイズに関心があります。
質問:私が心配しているのは、できるだけ早くデータをメモリにロードする速度です。
私は、HDF5(PyTables)と Feather の2つのストレージ形式のみを検討します。
ここに私の 読み取りと書き込みの比較 の結果をDF(形状:4000000 x 6、メモリ内のサイズ183.1 MB、非圧縮CSVのサイズ-492 MB)).
次のストレージ形式の比較:(CSV
、CSV.gzip
、Pickle
、HDF5
[さまざまな圧縮]):
read_s write_s size_ratio_to_CSV
storage
CSV 17.900 69.00 1.000
CSV.gzip 18.900 186.00 0.047
Pickle 0.173 1.77 0.374
HDF_fixed 0.196 2.03 0.435
HDF_tab 0.230 2.60 0.437
HDF_tab_zlib_c5 0.845 5.44 0.035
HDF_tab_zlib_c9 0.860 5.95 0.035
HDF_tab_bzip2_c5 2.500 36.50 0.011
HDF_tab_bzip2_c9 2.500 36.50 0.011
ただし、私のデータはすべてdatetime
dtypeであるため、異なる場合があります。したがって、your実際のデータまたは少なくとも同様のデータで...