что быстрее для загрузки: pickle или hdf5 в python [закрыто]

задан список фреймов данных pandas объемом 1,5 Гб.

Мне интересно, что лучший подход для обработки загрузки данных: рассол (через cPickle), hdf5 или что-то еще в python?

во-первых, "сброс" данных в порядке, чтобы занять много времени, я делаю это только один раз.

Я тоже не связана с размером файла на диске.

вопрос: Что меня беспокоит, так это скорость загрузки данные в памяти как можно быстрее.

1 ответов


Я бы рассмотрел только два формата хранения: HDF5 (PyTables) и перо

вот результаты моих чтение и запись сравнение для 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, поэтому всегда лучше сделать такое сравнение с код реальные данные или, по крайней мере, с аналогичными данными...