给定一个1.5 Gb的 Pandas 数据帧列表,哪种格式是加载压缩数据最快的格式:
泡菜(通过cPickle),hdf5或其他Python语言?

  • 我只关心最快的速度将数据加载到内存中
  • 我不在乎转储数据,它很慢,但是我只做一次。
  • 我不在乎磁盘
  • 上的文件大小

    最佳答案

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

    这是DF的read and write comparison的结果(形状:4000000 x 6,内存大小183.1 MB,未压缩CSV的大小-492 MB)。

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

                      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,因此最好将这种比较与您的真实数据或至少与相似数据进行比较...

    关于python - 加载: pickle or hdf5 in python更快,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37928794/

    10-12 00:23
    查看更多