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

Polars Rust按time列去重报错:未声明UniqueKeep类型

问题解答

是的,这个错误确实是缺少对UniqueKeep的导入导致的。

polars::prelude::*的默认导入集合并不包含UniqueKeep类型,所以即便你导入了prelude,也无法直接在代码中使用这个类型。

解决方法

方法1:显式导入UniqueKeep

在代码开头添加专门的导入语句:

use polars::frame::UniqueKeep;

之后就可以直接使用UniqueKeep::First或UniqueKeep::Last这类枚举值了。

方法2:使用完全限定路径

如果不想额外添加导入语句,可以直接用类型的完整路径来引用:

polars::frame::UniqueKeep::First

示例代码

以下是一个完整的可运行示例,演示按time列去重的正确写法:

use polars::prelude::*;
use polars::frame::UniqueKeep;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // 创建测试DataFrame
    let df = df!(
        "time" => ["2023-01-01", "2023-01-01", "2023-01-02", "2023-01-02"],
        "value" => [10, 20, 30, 40]
    )?;

    // 按time列去重,保留每组的第一行
    let deduplicated_df = df.unique(["time"], Some(UniqueKeep::First))?;
    println!("去重后的DataFrame:\n{}", deduplicated_df);

    Ok(())
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:52:08