我有一个 Dataframe ,其中列“ID”的数据类型为UInt 32,我有一个名为ids的向量。我想返回一个 Dataframe ,其中的行“ID”值包含在向量id中。
所需最小示例
use polars::df;
use polars::prelude::*;
fn filter_by_id(table: &DataFrame, ids: Vec<u32>) -> DataFrame {
df!{
"ID" => &[1, 3, 5],
"VALUE" => &["B", "D", "F"]
}.unwrap()
}
fn main() {
let table = df!{
"ID" => &[0, 1, 2, 3, 4, 5],
"VALUE" => &["A", "B", "C", "D", "E", "F"]
}.unwrap();
let ids = vec![1, 3, 5];
let filtered_table = filter_by_id(&table, ids);
println!("{:?}", table);
println!("{:?}", filtered_table);
}
| 识别号|价值|
| - ------|- ------|
| 无|A类|
| 1个|B|
| 第二章|C级|
| 三个|D级|
| 四个|E级|
| 五个|F级|
滤波器向量= [1,3,5]
所需输出=
| 识别号|价值|
| - ------|- ------|
| 1个|B|
| 三个|D级|
| 五个|F级|
1条答案
按热度按时间vuktfyat1#
polars大多运行在
Series
和Expr
类型上,所以通过将vec转换为Series
,可以相对容易地完成这项任务。注意:您需要添加
lazy
和is_in
功能cargo add polars --features lazy,is_in