You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pandas的pipe、行级apply和query操作合并为单链式调用

错误原因

你的报错是因为混淆了assign和apply的调用逻辑:

  1. assign方法中传入的lambda入参是完整的DataFrame对象,不是逐行传入的单行数据,你直接把整个DataFrame传给仅支持单行入参的function_3,就会触发Series真值判断的歧义错误
  2. assign本身不支持axis参数,你额外写的axis=1属于无效传参,也会引发运行异常

正确实现方式

你只需要在assign内部嵌套apply逐行处理即可,参考代码如下:

df1 = (
    df
    .pipe(function_1)
    .pipe(function_2)
    .assign(
        prediction = lambda df_: df_.apply(lambda row: function_3(row, input_dict), axis=1)
    )
    .query("prediction>0")
)

代码说明

  • 第一层lambda的入参df_是经过前序pipe处理后的完整DataFrame,用df_命名是为了避免和外层的原始df变量重名冲突
  • 内层调用apply并指定axis=1,就可以逐行把单行数据传给function_3,返回的结果直接作为新列prediction的值

内容的提问来源于stack exchange,提问作者Alessandro Ceccarelli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 16:45:05