我想做的事情是这样的:
class myclass(DataFrame):
...
def add(self, series): # series is a Series
self = self.append(series)
我知道'self = self.append(series)'不正确,但是如何纠正呢?原因与python中的list不同,DataFrame中的append操作不会自行修改,因此如何使用append更新自身?
答案 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)