Rust Polars字符串转日期:StrpTimeOptions未找到问题求助
Rust Polars 中 StrpTimeOptions 找不到的问题解决
你遇到的核心问题是Polars版本迭代带来的命名变更:旧版本中的StrpTimeOptions已被重命名为**StrptimeOptions**(注意p为小写),这正是编译器提示中"存在类似名称的结构体:StrptimeOptions"的原因。
解决步骤
- 无需额外引入依赖:
StrptimeOptions已经包含在polars::prelude::*中,只要你的Polars是较新版本,直接使用即可。 - 替换命名:将代码里所有的
StrpTimeOptions替换为StrptimeOptions。
修正后的完整代码
use polars::prelude::*; use polars_lazy::prelude::*; use chrono::prelude::*; fn main() { // 字符串转日期示例 let df = DataFrame::new(vec![Series::new( "date_str", &[ "5. Oct, ...2022", "..31 ..Oct.., 2022.", "E.R.R.O.R", "31 Sep, 2022", ], )]) .unwrap() .lazy(); let df = df.with_column( col("date_str") .str() .replace_all(lit("."), lit(""), true) .str() .strptime(StrptimeOptions { date_dtype: DataType::Date, fmt: Some("%d %b, %Y".into()), strict: false, exact: true, }) .alias("date"), ); println!("{:?}", df.collect().unwrap()); }
补充说明
早期Polars版本采用驼峰命名的StrpTimeOptions,后续版本遵循Rust的命名规范调整为全小写组合的StrptimeOptions,因此旧示例代码会出现找不到类型的错误。
内容的提问来源于stack exchange,提问作者Roger Bos
相关产品推荐
相关产品推荐

