msgpack在pandas中应该被取代pickle。
msgpack
pickle
根据msgpack上的Pandas文档:
这是一种轻便的可移植二进制格式,类似于二进制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
问题: 除了泡菜的潜在安全问题之外,msgpack相对于泡菜有什么好处?pickle仍然是序列化数据的首选方法,还是目前存在更好的替代方法?
protocol=
cloudpickle
就像@Jeff上面提到的那样,此博客文章可能很有趣