pandas.read_pickle()性能是否在版本0.13中瘫痪?

时间:2014-04-16 23:46:22

标签: python pandas

从0.12升级到pandas 0.13后,我注意到大量的泡菜文件正在服用 加载pandas.read_pickle()需要更长时间。似乎0.13不再使用cPickle进行阅读 - 这是故意的吗?

我的测试数据集的文件大小为1.6Gb,包含大约1300万条记录。

使用0.12文件需要加载146秒; 0.13需要982秒(约长6.7倍)。

我首先想到的是因为我用0.12编写了pickle文件并用0.13读取,并且它被迫使用兼容模式(参见this question)。但即使我再次从0.13保存文件,它仍然使用本机python pickle而不是cPickle来读取它。我看了cProfile验证。看看源代码herehere它似乎很清楚它会使用cPickle来编写,但总会使用原生的python pickle来加载。

如果我使用cPickle.load(open('foo.pickle'))代替pandas.read_pickle('foo.pickle')(如果您知道pickle版本是相同的话,我认为这是安全的吗?)然后我得到我的因子6。

to_pickle/read_pickle不再是推荐的方法,还是这个错误?

0 个答案:

没有答案