msgpack
in Pandasはpickle
の代わりになるはずです。
これはバイナリJSONに似た軽量のポータブルバイナリ形式で、スペース効率が高く、書き込み(シリアル化)と読み取り(非シリアル化)の両方で優れたパフォーマンスを提供します。
しかし、私はそのパフォーマンスが漬物に対して積み重なっていないように見えます。
df = pd.DataFrame(np.random.randn(10000, 100))
>>> %timeit df.to_pickle('test.p')
10 loops, best of 3: 22.4 ms per loop
>>> %timeit df.to_msgpack('test.msg')
10 loops, best of 3: 36.4 ms per loop
>>> %timeit pd.read_pickle('test.p')
100 loops, best of 3: 10.5 ms per loop
>>> %timeit pd.read_msgpack('test.msg')
10 loops, best of 3: 24.6 ms per loop
質問:pickleの潜在的なセキュリティ問題からの助言として、pickleよりもmsgpackの利点は何ですか? pickleはまだデータをシリアライズする好ましい方法ですか、それとも現在より良い代替手段が存在しますか?
protocol=
を使用する場合のみ)cloudpickle
を確認する必要があります)@Jeffが前述したように このブログ投稿 は興味深いかもしれません