nin*_*zzo 1 python dataframe pandas
我编写了以下代码来通过管道传输数据集的一些转换:
def func(self,df):
...
return (df.pipe(self.transformations[0])
.pipe(self.transformations[1]
.
.pipe(self.transformations[n])
Run Code Online (Sandbox Code Playgroud)
我想以更Pythonic的方式重写它,从列表转换中的元素数量中抽象出来,这样就不必对转换进行硬编码,而只需将它们添加到列表中即可。
我考虑了一个 for 循环,其中我在每次迭代时通过转换更新数据帧,但我想要一种更简洁的方法来执行此操作。
有什么建议吗?
考虑使用reduce它可以在大部分时间代替循环和递归。
from functools import reduce
def func(self, df):
return reduce(lambda _df, trans: _df.pipe(trans), self.transformations, df)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
970 次 |
| 最近记录: |