Path: blob/main/docs/source/src/rust/user-guide/transformations/time-series/parsing.rs
7890 views
// --8<-- [start:setup]1use polars::io::prelude::*;2use polars::prelude::*;3// --8<-- [end:setup]45fn main() -> Result<(), Box<dyn std::error::Error>> {6// --8<-- [start:df]7let df = CsvReadOptions::default()8.map_parse_options(|parse_options| parse_options.with_try_parse_dates(true))9.try_into_reader_with_file_path(Some("docs/assets/data/apple_stock.csv".into()))10.unwrap()11.finish()12.unwrap();13println!("{}", &df);14// --8<-- [end:df]1516// --8<-- [start:cast]17let df = CsvReadOptions::default()18.map_parse_options(|parse_options| parse_options.with_try_parse_dates(false))19.try_into_reader_with_file_path(Some("docs/assets/data/apple_stock.csv".into()))20.unwrap()21.finish()22.unwrap();23let df = df24.lazy()25.with_columns([col("Date").str().to_date(StrptimeOptions::default())])26.collect()?;27println!("{}", &df);28// --8<-- [end:cast]2930// --8<-- [start:df3]31let df_with_year = df32.clone()33.lazy()34.with_columns([col("Date").dt().year().alias("year")])35.collect()?;36println!("{}", &df_with_year);37// --8<-- [end:df3]3839// --8<-- [start:extract]40let df_with_year = df41.lazy()42.with_columns([col("Date").dt().year().alias("year")])43.collect()?;44println!("{}", &df_with_year);45// --8<-- [end:extract]4647// --8<-- [start:mixed]48let data = [49"2021-03-27T00:00:00+0100",50"2021-03-28T00:00:00+0100",51"2021-03-29T00:00:00+0200",52"2021-03-30T00:00:00+0200",53];54let q = col("date")55.str()56.to_datetime(57Some(TimeUnit::Microseconds),58None,59StrptimeOptions {60format: Some("%Y-%m-%dT%H:%M:%S%z".into()),61..Default::default()62},63lit("raise"),64)65.dt()66.convert_time_zone(67TimeZone::opt_try_new(Some("Europe/Brussels"))68.unwrap()69.unwrap(),70);71let mixed_parsed = df!("date" => &data)?.lazy().select([q]).collect()?;7273println!("{}", &mixed_parsed);74// --8<-- [end:mixed]7576Ok(())77}787980