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

Polars DataFrame多列条件过滤报错:如何正确组合谓词?

在Rust中使用Polars多列条件过滤DataFrame的正确方法

你遇到的E0369错误本质是Polars的Expr类型未实现&运算符重载,无法直接用该符号组合多列过滤条件。以下是正确的实现方式:

修正后的代码

use polars::{prelude::*, lazy::dsl::col};

// 组合多列过滤条件
let predicate = col("job").eq(lit("Social worker"))
    .and(col("sex").eq(lit("M")));

let filtered_df = df
    .clone()
    .lazy()
    .filter(predicate)
    .collect()
    .unwrap();

扩展多条件

如果后续需要添加更多过滤规则,直接链式调用.and()即可:

let predicate = col("job").eq(lit("Social worker"))
    .and(col("sex").eq(lit("M")))
    .and(col("age").gt(lit(30))) // 新增年龄大于30的条件
    .and(col("city").eq(lit("New York"))); // 新增城市条件

补充说明

Polars为Expr类型提供了.and()、.or()等专门的逻辑运算方法,这是官方推荐的组合条件方式。你之前尝试.and()未成功,大概率是写法问题(比如未正确链式调用、括号嵌套错误),确保每个子条件都是合法的Expr后,通过.and()连接即可生成正确的复合谓词。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:12:44