对DataFrame进行序列化

7 投票
2 回答
7310 浏览
提问于 2025-04-18 08:02

我正在尝试用以下代码将一个数据框(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这个工具;)

撰写回答