24

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

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

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

4

3 回答 3

24

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

df.to_pickle(file_name)

另一种选择是使用HDF5,入门工作稍多,但查询更丰富。

于 2013-06-06T20:46:28.447 回答
5

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

于 2015-01-27T03:02:40.773 回答
1

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

于 2013-06-06T20:45:49.443 回答