我可以在Rust Polars中将许多数据类型转换为AnyValue枚举。但是我如何将它们转换回原始的数据类型呢?
use polars::prelude::*;
fn main() {
let df = df!( "Fruit" => &["Apple", "Apple", "Pear"],
"Boolean" => &[true,false,true],
"Float64" => &[1.1,321.45,101.445])
.unwrap();
// get row 1 of the DataFrame as a vector of AnyValues
let vec_anyvalue = df.get(1).unwrap();
// trying to get the actual values:
// getting the fruit as a String kind of works (get quotation marks too)
let fruit = vec_anyvalue.get(0).unwrap().to_string();
// getting the bool or the float value does not ?!
// ERROR: the trait `From<&AnyValue<'_>>` is not implemented for `bool`
let boolvalue: bool = vec_anyvalue.get(1).unwrap().into();
// ERROR: the trait `From<AnyValue<'_>>` is not implemented for `f64`
let floatvalue: f64 = vec_anyvalue.get(2).unwrap().into();
}
2条答案
按热度按时间dzjeubhm1#
我认为您必须自己编写转换器:
(or返回选项/结果的变体)
46scxncf2#
我可以得到数据框的值 使用系列或AnyValue。
例如,get_vec_boolean:
例如,get_vec_float64:
例如,从列表中获取向量:
最终结果: