收集多种功能并将其全部应用于数据框

时间:2018-11-08 18:15:05

标签: python

我有几个功能:

def func1
def func2
def func3

我想以特定的顺序将它们全部应用于Python数据框。我可以做这样的事情:

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

或类似的

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

还有其他Python方式吗?

2 个答案:

答案 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()