代码为:
fn iter_and_make_feature_dataframe(df: &DataFrame) {
// iter over rows
// let columns = columns.unwrap_or(vec![]);
let col_len = df.shape().1;
let columns = df.get_column_names();
let mut df = df.clone();
df.as_single_chunk();
let mut iters = df.iter().map(|s| s.iter()).collect::<Vec<_>>();
let mut row: Vec<Vec<String>> = Vec::new();
for row_idx in 0..df.height() {
let mut c_row: Vec<String> = Vec::new();
for iter in &mut iters.iter().zip(&columns) {
let (value_iter, col_name) = iter;
let value = value_iter
.next()
.expect("should have as many iterations as rows")
.to_string();
c_row.push(value);
}
// process row
}
}
字符串
Rust Analyzer说道:
error[E0596]: cannot borrow `*value_iter` as mutable, as it is behind a `&` reference
--> src/main.rs:24:25
|
23 | let (value_iter, col_name) = iter;
| ---------- consider changing this binding's type to be: `&mut SeriesIter<'_>`
24 | let value = value_iter
| _________________________^
25 | | .next()
| |_______________________^ `value_iter` is a `&` reference, so the data it refers to cannot be borrowed as mutable
型
我该如何解决此问题?我想逐行处理一个 Dataframe ,并使用处理过的行创建一个新的 Dataframe 。
1条答案
按热度按时间olhwl3o21#
您需要使用
iter_mut()
而不是iter()
来推进迭代器:字符串