2019-01-27
阅读量:
704
在pandas DataFrame子类中定义实例属性?
我希望有一个属性。
class MyFrame(pd.DataFrame):
_metadata = ['myattr']
myattr = []
def __init__(self, *args, **kwargs):
pd.DataFrame.__init__(self, *args, **kwargs)
self.myattr.append(0)
@property
def _constructor(self):
return AutoData
我的问题是这myattr是一个类属性。当我在我的类的实例中修改它时,每个实例都被修改:
mf2 = mf
mf2.myattr.append(1)
print(mf.myattr)
>>> [0, 1]
但我希望该属性与其实例相关联。换句话说,myattr仅修改mf2但不修改mf。
解决办法:因为没有复制它(这种情况下使用copy.copy):
import copy
mf2 = copy.copy(mf)
mf2.myattr.append(1)
print(mf.myattr)






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
0条评论