猿问

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

我有几个功能:


def func1

def func2

def func3

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


df = func1(df)

df = func2(df)

df = func3(df)

或喜欢:


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

有没有更多的 Pythonic 方式来做到这一点?


宝慕林4294392
浏览 143回答 2
2回答

UYOU

使用循环:for f in (func1, func2, func3):     df = f(df)

慕哥9229398

将它们全部放在类中并确保它们都返回类,然后将它们链接起来: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()
随时随地看视频慕课网APP

相关分类

Python
我要回答