将DataFrame进行Pickling

7

我正在试图使用pickle对DataFrame进行序列化。

import pandas as pd
from pandas import DataFrame
data = pd.read_table('Purchases.tsv',index_col='coreuserid')
data.to_pickle('Purchases.pkl')

我已经运行了一段时间的“数据”,没有出现任何问题,所以我知道这不是数据损坏的问题。我认为可能是语法问题,但我已经尝试了许多变体。我不确定是否应该提供整个错误消息,但它以以下内容结尾:

\pickle.pyc in to_pickle(obj, path)
 13     """
 14     with open(path, 'wb') as f:
 15         pkl.dump(obj, f, protocol=pkl.HIGHEST_PROTOCOL)

 SystemError: error return without exception set 

已创建Purchases.pkl文件,但如果我调用

data = pd.read_pickle('Purchases.pkl')

我遇到了EOFError错误。我正在使用Canopy 1.4,所以应该是最近的pandas 0.13.1版本,应该具备此功能。


数据框有多大?在此处查看其他报告:https://github.com/pydata/pandas/issues/3699 - dpinte
适度:data.shape =(21324932,7) - Keith
5
看起来像是已知的漏洞:http://bugs.python.org/issue11564 - dpinte
你尝试过使用HDF5类型的方法吗?如果数据框中主要是数字,使用这种方法可能会更有效。 - RexFuzzle
2个回答

3

几年后,现在它运行良好。感谢pandas ;)


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接