如何使用pandas DataFrame和Series而不是继承组合

时间:2015-09-15 01:06:00

标签: python inheritance pandas composition

我非常想继承并为我的用例创建一个pandas DataFrame的子类,但是从我读过的关于good programmingPandas internals documentation的所有内容来看,这不是正确的事情。做。

作为简化示例,我可以说我DataFrame的行是人,而字段是高度和重量。我很想成为子类,所以我可以有一个bmi()的方法。我会这样做:

将pandas导入为pd

class People(pd.DataFrame):
    def __init__(self, *args, **kwargs):
        super(People, self).__init__(*args, **kwargs)

    def bmi(self):
        return self['weight'] / self['height'] ** 2 x 703

people = People([[172, 74], [100, 60]])
bmi = people.bmi()

我如何使用作文?它会是这样的:

class People(object):
    def __init__(self, data):
        self.data = pd.DataFrame(data)

    def bmi(self):
        return self.data['weight'] / self.data['height'] ** 2 x 703

people = People([[172, 74], [100, 60]])
bmi = people.bmi()

如果没有,我该怎么做?如果是这样,为什么这样更好?

注意:我意识到这是一个过于简单的例子。

0 个答案:

没有答案