我正在尝试更新派生类的pickle行为,但无法在pickling中保存对象属性。在
import pandas as pd
class Fruit(pd.DataFrame):
def __init__(self):
super(Fruit, self).__init__()
self.codebook={3:4}
sdf = Fruit()
sdf.codebook ={1:2}
import pickle
with open('mypickle.pickle', 'wb') as f:
pickle.dump(sdf, f)
with open('mypickle.pickle') as f:
loaded_obj = pickle.load(f)
assert loaded_obj.__class__ == Fruit
assert loaded_obj.codebook
最终断言失败。AttributeError: 'Fruit' object has no attribute 'codebook'
如果我的类定义是class Fruit(): pass
,那么它可以正常工作。在
如何pickle我的对象并包含新的“点”属性(.codebook
)?在
(此问题与向Pandas DataFrame类添加测量数据码本信息和功能的开放项目有关:https://github.com/cpbl/surveypandas)
更新:
我试过更换DataFrame.to_pickle数据帧用水果自己的,直接用泡菜。倾倒以同样的方式失败。(为什么?)在
这是一个不切实际的努力,它成功地记录了一切,但却导致了一些无法理解的东西熊猫。读琰泡菜(). 这似乎也不必要尴尬:
^{2}$
目前没有回答
相关问题 更多 >
编程相关推荐