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

teg*_*gan 12 python pickle pandas

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

标准泡菜方法如下所示:

pickle.dump(my_dataframe, open('test_pickle.p', 'wb'))
Run Code Online (Sandbox Code Playgroud)

Pandas内置方法如下所示:

my_dataframe.to_pickle('test_pickle.p')
Run Code Online (Sandbox Code Playgroud)

teg*_*gan 14

感谢@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
Run Code Online (Sandbox Code Playgroud)

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

  • 这是迟到的,但只是为了插入:看起来对于非常大的数据帧,无论方法如何,写入时间(`pickle.dump`或`df.to_pickle`)大致相同,但读取时间快_much_更快用`df.to_pickle`创建的文件.对于大小为53330行×21列的数据帧上的`timeit`,使用`pickle.dump`编写的文件解压缩为115毫秒,而用@ df.to_pickle`编写的文件只需3毫秒.不知道巨大的加速来自何处,但它非常引人注目. (13认同)