Rust 的 Polars 庫是一個高性能的 DataFrame 和 Series 庫,用于處理復雜的數據結構。以下是如何使用 Polars 處理復雜數據結構的示例:
use polars::prelude::*;
fn main() {
let data = vec![
(1, "A", 3.0),
(2, "B", 4.0),
(3, "C", 5.0),
];
let df = DataFrame::new(data)?;
println!("{:?}", df);
}
let column_a = df.column("A")?;
let column_b = df.column("B")?;
let column_c = df.column("C")?;
let filtered_df = df.filter(col("A").gt(lit(1)))?;
println!("{:?}", filtered_df);
let aggregated_df = df.groupby(["A"]).sum()?;
println!("{:?}", aggregated_df);
let other_data = vec![
(4, "D", 6.0),
(5, "E", 7.0),
];
let other_df = DataFrame::new(other_data)?;
let merged_df = df.join(&other_df, "A")?;
println!("{:?}", merged_df);
use chrono::prelude::*;
let date_data = vec![
("2021-01-01", 1, "A", 3.0),
("2021-01-02", 2, "B", 4.0),
("2021-01-03", 3, "C", 5.0),
];
let date_df = DataFrame::new(date_data)?
.with_column(
Series::new("date", date_data.iter().map(|(date, _, _, _)| DateTime::parse_from_str(date, "%Y-%m-%d").unwrap())),
)?;
println!("{:?}", date_df);
這些示例展示了如何使用 Polars 處理復雜的數據結構,包括創建 DataFrame、訪問列、過濾數據、使用聚合函數、合并 DataFrame 以及處理時間序列數據。更多關于 Polars 的功能和用法,請參考官方文檔:https://docs.rs/polars/latest/polars/