有没有一种快速的方法来对 DataFrame 进行序列化?
我有一个可以并行运行 pandas 分析的网格系统。最后,我想从每个网格作业中收集所有结果(作为 DataFrame)并将它们聚合成一个巨大的 DataFrame。
如何以可以快速加载的二进制格式保存数据帧?
最简单的方法就是使用to_pickle(作为pickle),请参阅docs api page中的 pickling :
df.to_pickle(file_name)
另一种选择是使用HDF5,入门工作稍多,但查询更丰富。
DataFrame.to_msgpack是实验性的,并非没有一些问题,例如 Unicode,但它比酸洗要快得多。它序列化了一个包含 500 万行的数据帧,在大约 2 秒内占用了 2-3 Gb 的内存,生成的文件大约为 750 Mb。加载速度有点慢,但仍然比 unpickling 快得多。
必须对可用的io 功能进行计时?二进制不会自动更快,据我所知,HDF5 应该很快。