pandas DataFrame的序列化

Jam*_*ond 17 python pandas

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

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

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

And*_*den 18

最简单的方法就是使用to_pickle(作为pickle),请参阅docs api页面中pickle:

df.to_pickle(file_name)
Run Code Online (Sandbox Code Playgroud)

另一种选择是使用HDF5,稍微开始工作但查询更丰富.

  • 在pandas 0.12中,FWIW保存将更改为[to_pickle](https://github.com/pydata/pandas/issues/3782). (6认同)
  • 请注意[Python 3 - 可以处理大于4GB的字节对象吗?](/sf/ask/2202768221/) (3认同)
  • [这](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.common.save.html)似乎是最好的...... (2认同)

osa*_*osa 5

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

  • to_msgpack 自 0.25.0 起已弃用。 (2认同)