pickle を使用して、他のデータセットから生成したいくつかの大規模なデータセットを保存しようとしています。ダンプ中にエラーは発生しませんが、これらのデータセットをロードしようとすると、ピクルは eof エラーで終了します。以下は、データセットを保存するために実行するコードです。
from scipy.stats.mstats import mode
trainingSetCustomers = pd.DataFrame({'visitFrequency': trainingSet.size(),'totalAmountSpent': trainingSet['amountSpent'].sum(),'totalProducts': trainingSet['productCount'].sum(),'firstVisit': trainingSet['visitDate'].min(),'lastVisit': trainingSet['visitDate'].max(),'visitType':trainingSet['visitType'].apply(f),'country': trainingSet['country'].apply(f),'isReferred':trainingSet['isReferred'].sum()}).reset_index()
p2 = pickle.Pickler(open("trainingSetCustomers.p","wb")) #finaldatasetYear1AndYear2 #trainingset groupedCustomersWithDates dfOrdersNew groupedCustomersNew
p2.clear_memo()
p2.dump(trainingSetCustomers)
print "Training Set saved" #Done
trainingResultSetCustomers = pd.DataFrame({'futureVisitFrequency': trainingResultSet.size(),'futureTotalAmountSpent': trainingResultSet['amountSpent'].sum(),'futureTotalProducts': trainingResultSet['productCount'].sum(),'firstVisit': trainingResultSet['visitDate'].min(),'lastVisit': trainingResultSet['visitDate'].max(),'visitType':trainingResultSet['visitType'].apply(f),'country': trainingResultSet['country'].apply(f),'isReferred':trainingResultSet['isReferred'].sum()}).reset_index()
p3 = pickle.Pickler(open("trainingResultSetCustomers.p","wb")) #finaldatasetYear1AndYear2 #trainingset groupedCustomersWithDates dfOrdersNew groupedCustomersNew
p3.clear_memo()
p3.dump(trainingResultSetCustomers)
print "trainingresult set saved" #Done
これはエラーなしで実行され、メッセージが出力されます。しかし、次のコードを実行すると:
trainingResultSetCustomers = pickle.load( open( "trainingResultSetCustomers.p", "rb" ) )
それは私に EoFError を与えます。これらの種類のテスト セットを 4 つ保存する必要がありますが、なぜこれが起こっているのか本当に混乱しています。違いがある場合は、sshを介してIPythonノートブックで実行しています。また、5行だけでこれを試すと、完全に機能します
データ構造: コードからわかるように、このデータフレームはグループ化されたオブジェクトのプロパティによって生成されます。
これは私が得るエラーです:
EOFError Traceback (most recent call last)
<ipython-input-10-86d38895c564> in <module>()
5 p = pickle.Pickler(o) #finaldatasetYear1AndYear2 #trainingset groupedCustomersWithDates dfOrdersNew groupedCustomersNew
6 p.clear_memo()
----> 7 trainingset = pickle.load(o)
8 o.close()
9 print "done"
/usr/lib/python2.7/pickle.pyc in load(file)
1376
1377 def load(file):
-> 1378 return Unpickler(file).load()
1379
1380 def loads(str):
/usr/lib/python2.7/pickle.pyc in load(self)
856 while 1:
857 key = read(1)
--> 858 dispatch[key](self)
859 except _Stop, stopinst:
860 return stopinst.value
/usr/lib/python2.7/pickle.pyc in load_eof(self)
878
879 def load_eof(self):
--> 880 raise EOFError
881 dispatch[''] = load_eof
882