收集多个函数并将它们全部应用于一个数据帧



我有几个函数:

def func1
def func2
def func3

我想在Python数据帧上以特定的顺序应用所有这些。我可以这样做:

df = func1(df)
df = func2(df)
df = func3(df)

或类似:

df = func3(func2(func1(df)))

还有什么更像Python的方法吗?

使用循环:

for f in (func1, func2, func3):
df = f(df)

将它们全部放在类中,并确保它们都返回类,然后将它们链接起来:

df = pd.DataFrame([[1,2]])
class foo():
def __init__(self, df=pd.DataFrame()):
self.df = df
def __call__(self, df=pd.DataFrame()):
return foo(df=df)
def print(self):
print("here we go")
print (self.df)
return self
def func1(self):
self.df=self.df.append([[2,3]])
return self
def func2(self):
self.df=self.df.append([[3,4]])
return self
def func3(self):
self.df=self.df.append([[4,5]])
return self 

a = foo(df)
a.print().func1().print().func2().print().func3().print()

最新更新