2016-06-20 1 views
14

Данный список представляет собой 1,5-гигабайтный список данных для панд., который быстрее для загрузки: pickle или hdf5 в python

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

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

Я также не, касающийся размера файла на диске.

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

+7

Вы пробовали измерить это в ваших конкретных условиях? – pvg

+1

Я предполагаю, что рассол будет одним из худших способов сбросить эти данные :-). Конечно, это просто догадка. У меня нет жестких данных для его резервного копирования. Говоря о жестких данных, почему бы не провести эксперимент и не выяснить? – mgilson

+0

Ну, я отправляю вопрос не на ответ, я думаю;) Я могу проверить pickle vs hdf5, но что, если эксперт на этом сайте может направить меня к гораздо лучшему методу, который подпадает под «или что-то еще»? :) – denvar

ответ

29

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

Ниже приведены результаты моих read and write comparison для DF (форма: 4000000 х 6, размер в памяти 183,1 МБ, размер несжатого 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, так что всегда лучше сделать такое сравнение с вашими действительными данными или, по крайней мере, с аналогичными данными ...

+0

Почему вы рассматриваете только HDF5 и Feather, но не Pickle? Ваш результат показывает, что это неплохо, есть также сжатый рассол. Разве это не хороший стандартный выбор? – THN

+0

@THN, Если я правильно помню, я видел некоторые ошибки в прошлом - я не уверен, хотя это все еще так ... – MaxU

+1

У Pickle есть проблема, что он не будет работать для очень больших файлов данных объемом 2-3 ГБ и так далее часто. Он предназначен для небольших данных. Также рассол имеет проблемы с безопасностью! – AbdealiJK

Смежные вопросы