热线电话:13121318867

登录
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.0000
6
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子