什么是挑选pandas DataFrame的最快方法?

时间:2015-02-26 23:15:32

标签: python pandas pickle

哪个更好,使用Pandas内置方法或pickle.dump

标准的泡菜方法如下:

pickle.dump(my_dataframe, open('test_pickle.p', 'wb'))

Pandas内置方法如下所示:

my_dataframe.to_pickle('test_pickle.p')

2 个答案:

答案 0 :(得分:13)

感谢@qwwqwwq我发现pandas有一个内置的to_pickle数据帧方法。我做了一个快速的时间测试:

In [1]: %timeit pickle.dump(df, open('test_pickle.p', 'wb'))
10 loops, best of 3: 91.8 ms per loop

In [2]: %timeit df.to_pickle('testpickle.p')
10 loops, best of 3: 88 ms per loop

所以看起来内置只是差一点(对我而言,这很有用,因为它意味着它可能不值得重构代码来使用内置功能) - 希望这有助于某人!

答案 1 :(得分:0)

简单的基准,对吧?

enter image description here

完全没有区别,实际上我希望Pandas实现getstate,因此调用pickle.dump(df)实际上与调用df.to_pickle()相同。

如果您在熊猫的源代码上搜索__getstate__,则会发现that it is implemented on several objects