【问题标题】:Serialization of a pandas DataFrame熊猫数据框的序列化
【发布时间】:2013-06-03 00:50:03
【问题描述】:

有没有一种快速的方法来对 DataFrame 进行序列化?

我有一个可以并行运行 pandas 分析的网格系统。最后,我想从每个网格作业中收集所有结果(作为 DataFrame)并将它们聚合成一个巨大的 DataFrame。

如何将数据帧保存为可以快速加载的二进制格式?

【问题讨论】:

标签: python pandas


【解决方案1】:

DataFrame.to_msgpack 是实验性的,并非没有一些问题,例如使用 Unicode,但它比酸洗快得多。它序列化了一个包含 500 万行的数据帧,在大约 2 秒内占用了 2-3 Gb 的内存,生成的文件大约为 750 Mb。加载速度稍慢,但仍比 unpickling 快。

【讨论】:

  • to_msgpack 自 0.25.0 起已弃用。
  • 链接断开。如前所述,该项目不得再存在 (?)。
【解决方案2】:

最简单的方法就是使用to_pickle(作为pickle),见pickling from the docs api page

df.to_pickle(file_name)

另一种选择是使用HDF5,上手工作量稍大,但查询的内容要丰富得多。

【讨论】:

【解决方案3】:

必须为可用的io functions 计时?二进制不会自动更快,据我所知 HDF5 应该很快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 2020-06-03
    • 2013-07-28
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    相关资源
    最近更新 更多