Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 收集多个函数并在数据帧上应用所有函数_Python - Fatal编程技术网

Python 收集多个函数并在数据帧上应用所有函数

Python 收集多个函数并在数据帧上应用所有函数,python,Python,我有几个功能: def func1 def func2 def func3 我想在Python数据帧上以特定的顺序应用所有这些方法。我可以这样做: df = func1(df) df = func2(df) df = func3(df) 或者说: df = func3(func2(func1(df))) 还有其他类似蟒蛇的方法吗?使用循环: for f in (func1, func2, func3): df = f(df) 将它们全部放在类中,确保它们都返回类,然后链接它们:

我有几个功能:

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

df = func1(df)
df = func2(df)
df = func3(df)
或者说:

df = func3(func2(func1(df)))
还有其他类似蟒蛇的方法吗?

使用循环:

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

你可以试试看,功能构成美就在旁观者的眼中。