为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

宝慕林4294392 2021-08-11 20:23:08
我有几个功能:def func1def func2def func3我想在 Python 数据帧上以特定顺序应用所有这些。我可以做这样的事情:df = func1(df)df = func2(df)df = func3(df)或喜欢:df = func3(func2(func1(df)))有没有更多的 Pythonic 方式来做到这一点?
查看完整描述

2 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

使用循环:


for f in (func1, func2, func3):

     df = f(df)


查看完整回答
反对 回复 2021-08-11
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

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


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



查看完整回答
反对 回复 2021-08-11
  • 2 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号