在 Rust 中使用 Polars 按列值过滤 DataFrame 时出错:预期 &column,找到 &str

问题描述 投票:0回答:1

我正在使用 Polars 库在 Rust 中处理 CSV 文件,并成功将 CSV 读入 DataFrame。现在,我需要根据“城市”列中的特定值过滤 DataFrame。

这是我用来按“城市”列过滤的代码:

let filtered_df = df.filter(&df["City"].eq("California"))?;

我收到错误:

error: arguments to the method `eq` are incorrect: expected `&column`, found `&str`

我不确定如何通过字符串值(“California”)正确过滤 DataFrame。

有人可以解释如何使用 Polars 按“城市”列正确过滤 DataFrame 吗?

感谢您的时间和帮助。

dataframe csv rust error-handling rust-polars
1个回答
0
投票

要应用过滤器,首先,您需要创建一个

mask
。这将返回
ChunkedArray
类型的
BooleanType

let mask = df
        .column("City")
        .unwrap()
        .as_materialized_series()
        .equal("California")
        .unwrap();

然后您可以将

mask
的引用传递给
filter
函数。

let filtered_df = df.filter(&mask);

注意:这是用最新版本的 Rust Polars 测试的(

0.44.2
)

© www.soinside.com 2019 - 2024. All rights reserved.