web-dev-qa-db-ja.com

pandas DataFrameをピクルスにする最も速い方法は何ですか?

Pandas組み込みメソッドまたはpickle.dumpを使用して、どちらが良いですか?

標準の酸洗い方法は次のようになります。

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

Pandas組み込みメソッドは次のようになります:

my_dataframe.to_pickle('test_pickle.p')
12
tegan

@qwwqwwqのおかげで、pandasにはデータフレーム用のto_pickleメソッドが組み込まれていることがわかりました。QuickTimeテストを行いました。

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

したがって、ビルトインの方がわずかに優れているようです(私にとって、これは、ビルトインを使用するためにコードをリファクタリングする価値がないことを意味するため、便利です)-これが誰かに役立つことを願っています!

14
tegan

簡単なベンチマークですね。

enter image description here

まったく違いはありません。実際、Pandasは getstate を実装しているので、 pickle.dump(df)は、実際にはdf.to_pickle()を呼び出すのと同じです。

Pandasソースコードで__getstate__を検索すると、 複数のオブジェクトに実装されている が見つかります。

1
H4dr1en