[−][src]Crate polars
Polars DataFrames in Rust
Read more in the DataFrame and Series modules.
Read and write CSV/ JSON
use polars::prelude::*; use std::fs::File; fn example() -> Result<DataFrame> { let file = File::open("iris.csv").expect("could not open file"); CsvReader::new(file) .infer_schema(None) .has_header(true) .finish() }
For more IO examples see: * the csv module * the json module
Joins
use polars::prelude::*; // Create first df. let s0 = Series::new("days", &[0, 1, 2, 3, 4]); let s1 = Series::new("temp", &[22.1, 19.9, 7., 2., 3.]); let temp = DataFrame::new(vec![s0, s1]).unwrap(); // Create second df. let s0 = Series::new("days", &[1, 2]); let s1 = Series::new("rain", &[0.1, 0.2]); let rain = DataFrame::new(vec![s0, s1]).unwrap(); // Left join on days column. let joined = temp.left_join(&rain, "days", "days"); println!("{}", joined.unwrap())
+------+------+------+
| days | temp | rain |
| --- | --- | --- |
| i32 | f64 | f64 |
+======+======+======+
| 0 | 22.1 | null |
+------+------+------+
| 1 | 19.9 | 0.1 |
+------+------+------+
| 2 | 7 | 0.2 |
+------+------+------+
| 3 | 2 | null |
+------+------+------+
| 4 | 3 | null |
+------+------+------+
GroupBys
use polars::prelude::*; fn groupby_sum(df: &DataFrame) -> Result<DataFrame> { df.groupby("column_name")? .select("agg_column_name") .sum() }
Arithmetic
use polars::prelude::*; let s: Series = [1, 2, 3].iter().collect(); let s_squared = &s * &s;
Rust iterators
use polars::prelude::*; let s: Series = [1, 2, 3].iter().collect(); let s_squared: Series = s.i32() .expect("datatype mismatch") .into_iter() .map(|optional_v| { match optional_v { Some(v) => Some(v * v), None => None, // null value } }).collect();
Comparisons
use polars::prelude::*; use itertools::Itertools; let s = Series::new("dollars", &[1, 2, 3]); let mask = s.eq(1); let valid = [true, false, false].iter(); assert!(mask .into_iter() .map(|opt_bool| opt_bool.unwrap()) // option, because series can be null .zip(valid) .all(|(a, b)| a == *b))
And more...
Modules
chunked_array | The typed heart of every Series column. |
datatypes | |
error | |
frame | DataFrame module |
prelude | |
series | Series |
testing |
Macros
apply_method_all_series | |
apply_method_arrowprimitive_series | |
apply_operand_on_chunkedarray_by_iter | |
exec_concurrent |