如何从数据框修改子类的自身数据?

时间:2018-11-01 11:25:00

标签: python pandas dataframe subclass

我想做的事情是这样的:

class myclass(DataFrame):
    ...
    def add(self, series): # series is a Series
        self = self.append(series)

我知道'self = self.append(series)'不正确,但是如何纠正呢?原因与python中的list不同,DataFrame中的append操作不会自行修改,因此如何使用append更新自身?

1 个答案:

答案 0 :(得分:0)

您不需要添加新的子类,只需通过monkey-patching将自己的方法添加到pd.DataFrame()

设置

import pandas as pd

def vertical_add(self, series):
    return pd.concat([self, series])

def horizontal_add(self, series):
    return pd.concat([self, series], axis=1)

pd.DataFrame.vertical_add = vertical_add
pd.DataFrame.horizontal_add = horizontal_add

定义一些数据

df = pd.DataFrame(data={'a': [1, 2, 3, 4, 5], 'b': ['a', 'b', 'c', 'd', 'e']})
series = pd.Series(np.arange(10,16))

应用新方法

df.vertical_add(series)
df.horizontal_add(series)