哪个更好,使用Pandas内置方法或pickle.dump
?
标准的泡菜方法如下:
pickle.dump(my_dataframe, open('test_pickle.p', 'wb'))
Pandas内置方法如下所示:
my_dataframe.to_pickle('test_pickle.p')
答案 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)
简单的基准,对吧?
完全没有区别,实际上我希望Pandas实现getstate,因此调用pickle.dump(df)
实际上与调用df.to_pickle()
相同。
如果您在熊猫的源代码上搜索__getstate__
,则会发现that it is implemented on several objects。