使用Polars DataFrame时遇Result枚举无lazy()方法错误的解决咨询
Rust Polars DataFrame 错误解决:
lazy() 方法调用失败 问题背景
我正在学习Rust,尝试使用Polars DataFrame时遇到了无法理解的错误。我的代码旨在创建一个DataFrame,并添加一个新列作为现有两列的和:
fn main() { let _df = DataFrame::default(); let df= df!( "a" => &[1, 2, 3, 4], "b" => &[2, 3, 4, 5], ); println!("{:#?}", df); let df = df.lazy() .with_column( col("a") + col("b"), "c" ) .collect() .unwrap(); }
报错信息
代码在调用lazy()方法时失败,报错信息如下:
error[E0599]: no method named `lazy` found for enum `Result` in the current scope --> src/bin/dataframes.rs:16:17 | 16 | let df = df.lazy() | ^^^^ method not found in `Result<DataFrame, PolarsError>` | note: the method `lazy` exists on the type `polars::prelude::DataFrame` --> /usr/local/cargo/registry/src/index.crates.io-6f17d22bba15001f/polars-lazy-0.35.4/src/frame/mod.rs:45:5 | 45 | fn lazy(self) -> LazyFrame; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `Result::expect` to unwrap the `polars::prelude::DataFrame` value, panicking if the value is a `Result::Err`
疑问
我看到编译器给出了建议,但不知道如何以及在哪里使用Result::expect来解包DataFrame值。我理解df可能是DataFrame或错误,是否需要添加match结构?
已找到的解决方法
我已经找到了解决方法,但感到困惑的是官方文档中没有相关内容:
let df = df.expect("").lazy() .with_column( (col("a") + col("b")).alias("c") ) .collect() .unwrap();
内容的提问来源于stack exchange,提问作者NotAName
相关产品推荐
相关产品推荐

