我有几个功能:
def func1
def func2
def func3
我想以特定的顺序将它们全部应用于Python数据框。我可以做这样的事情:
df = func1(df)
df = func2(df)
df = func3(df)
或类似的
df = func3(func2(func1(df)))
还有其他Python方式吗?
答案 0 :(得分:3)
使用循环:
for f in (func1, func2, func3):
df = f(df)
答案 1 :(得分:1)
将它们全部放在类中,并确保它们全部返回类,然后将它们链接起来:
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()