对DataFrame进行序列化
我正在尝试用以下代码将一个数据框(DataFrame)保存成一个文件:
import pandas as pd
from pandas import DataFrame
data = pd.read_table('Purchases.tsv',index_col='coreuserid')
data.to_pickle('Purchases.pkl')
我已经在“data”上运行了一段时间,没有遇到任何问题,所以我知道数据没有损坏。我觉得可能是语法的问题,但我尝试了很多不同的写法。我不太想把整个错误信息都给出来,但最后一部分是:
\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,这个版本应该足够新,能够支持这个功能。
2 个回答
0
你可以试着从你的数据框(DataFrame)创建一个类,然后把它保存起来。
这样做可以帮助你:把 pandas 数据框传入类中
3
过了几年,现在这个问题解决了,运行得很好。谢谢pandas这个工具;)