关于pandas:加载速度更快:python中的pickle或hdf5

which is faster for load: pickle or hdf5 in python

给出了1.5 Gb的pandas数据帧列表。

我想知道哪种方法可以更好地处理加载这些数据:
pickle(通过cPickle),hdf5或python中的其他东西?

首先,"倾销"数据可以花很长时间,我只做一次。

我也不关心磁盘上的文件大小。

题:
我关心的是尽可能快地将数据加载到内存中的速度。


我只考虑两种存储格式:HDF5(PyTables)和Feather

以下是我对DF的读写比较结果(形状:4000000 x 6,内存大小183.1 MB,未压缩CSV大小 - 492 MB)。

以下存储格式的比较:(CSVCSV.gzipPickleHDF5 [各种压缩]):

1
2
3
4
5
6
7
8
9
10
11
                  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,所以最好还是与你的真实数据进行比较,或者至少与类似的数据进行比较......