如何在Python的pipe中用前序结果作为后续步骤的第二个参数?
在Python中实现管道操作将前序结果作为第二个参数传入
在Python的pandas管道操作里,没法像R那样直接用.占位,但可以通过两种简单方式实现你要的效果:
方法1:用lambda函数包装目标函数
把前一步的结果(管道传递过来的对象)手动放到第二个参数的位置,示例代码:
df.pipe(b, arg1b).pipe(lambda x: c(arg1c, x))
这里lambda x里的x就对应R里的.,代表管道前序步骤的输出,我们把它作为c函数的第二个参数传入。
方法2:利用pipe的参数传递逻辑(适用于函数有明确参数名的场景)
如果c函数的第二个参数有具体的参数名(比如叫input_data),可以直接通过关键字参数指定,用lambda来传递前序结果:
df.pipe(b, arg1b).pipe(c, arg1c, input_data=lambda x: x)
你之前写的**是Python里用于解包字典的语法,在这里完全不适用,所以会报语法错误。
内容的提问来源于stack exchange,提问作者gaut
相关产品推荐
相关产品推荐

