我正在使用 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 吗?
感谢您的时间和帮助。
要应用过滤器,首先,您需要创建一个
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
)