提问人:Robert 提问时间:8/22/2022 更新时间:8/22/2022 访问量:342
Rust 如何在函数中修改极坐标 DataFrame,以便调用方看到更改?
Rust How to modify a polars DataFrame in a function, so that the caller see the changes?
问:
我迷失在可变的引用中......尝试将 DataFrame 发送到函数中...更改它并在函数调用完成后查看更改...
我收到错误:
不能借用为可变的
下面是一个代码示例:
use polars::prelude::*;
use std::ops::DerefMut;
fn main() {
let mut days = df!(
"date_string" => &["1900-01-01", "1900-01-02", "1900-01-03", "1900-01-04", "1900-01-05",
"1900-01-06", "1900-01-07", "1900-01-09", "1900-01-10"])
.unwrap();
change(&mut days);
println!("{:?}", days);
}
fn change(days: &mut DataFrame) {
days.column("date_string").unwrap().rename("DATE-STRING)");
}
答:
1赞
isaactfa
8/22/2022
#1
的签名是column
fn column(&self, name: &str) -> Result<&Series, PolarsError>
它返回对列的共享引用。 有自己的重命名
方法,您应该使用:DataFrame
use polars::df;
use polars::prelude::*;
fn main() {
let mut days = df!(
"date_string" => &["1900-01-01", "1900-01-02", "1900-01-03", "1900-01-04", "1900-01-05",
"1900-01-06", "1900-01-07", "1900-01-09", "1900-01-10"])
.unwrap();
change(&mut days).unwrap();
assert_eq!(days.get_column_names(), &["DATE-STRING"]);
}
fn change(days: &mut DataFrame) -> Result<&mut DataFrame> {
days.rename("date_string", "DATE-STRING")
}
评论