【发布时间】:2015-06-15 08:26:10
【问题描述】:
我有一个包含 500,000 行的数据框“DF”。以下是每列的数据类型:
ID int64
time datetime64[ns]
data object
“数据”列中的每个条目都是一个大小 = [5,500] 的数组
当我尝试使用
保存此数据框时DF.to_pickle("my_filename.pkl")
它返回了以下错误:
12 """
13 with open(path, 'wb') as f:
---> 14 pkl.dump(obj, f, protocol=pkl.HIGHEST_PROTOCOL)
OSError: [Errno 22] Invalid argument
我也尝试过这种方法,但我得到了同样的错误:
import pickle
with open('my_filename.pkl', 'wb') as f:
pickle.dump(DF, f)
我尝试保存这个数据框的 10 行:
DF.head(10).to_pickle('test_save.pkl')
我完全没有错误。因此,它可以保存小的DF,但不能保存大的DF。
我在 Mac 中使用 python 3、ipython notebook 3。
请帮我解决这个问题。我真的需要将此 DF 保存到泡菜文件中。我在互联网上找不到解决方案。
【问题讨论】:
-
你试过 cPickle 吗?无论如何,对大量数据使用泡菜并不是最理想的。并不是说我相信它可以解决问题,但它是可能的。
-
cPickle 在 python 3 中不可用。
-
内存中的数据帧到底有多大?
-
这是一个错误,待修复:bugs.python.org/issue24658