use polars::prelude::*;
+use std::env::args;
use std::fs::{create_dir_all,File};
-
fn main() -> Result<(),PolarsError> {
+ // expect first arg to be a file suffix = 0, 1
+ let mut argsiter = args();
+ let _ = argsiter.next();
+ let suffix = argsiter.next().unwrap();
+
+ // prep output file
create_dir_all("out").unwrap();
- let mut file =
- File::create("out/output.json").unwrap();
+ let outfilename = format!("out/output-{}.json",suffix);
+ // println!("{}",outfilename);
+ let mut file = File::create(outfilename).unwrap();
// set some columns to be parsed as numeric
let mut schema_override = Schema::new();
.with_null_values(null_values)
.finish()?;
- // one country
- let df = df.filter(&df.column("Country Name")?.
- equal("France")?)?;
+ // split list based on arg
+ let mut mask = df.column("Country Name")?.lt("Luxemb")?;
+ if suffix == "1" {
+ mask = df.column("Country Name")?.gt_eq("Luxemb")?;
+ }
+ let df = df.filter(&mask)?;
// values not status, selected cols
let mut df = df
.filter(&df.column("Attribute")?.
equal("Value")?)?
.select(["Country Name","Indicator Name","Indicator Code","2022"])?
- .sort(["Indicator Name"],false,false)?;
+ .sort(["Country Name","Indicator Name"],vec!(false,false),false)?;
println!("df: {:?}",df);