Added dataframe powers and demo image
continuous-integration/drone/push Build is failing Details

This commit is contained in:
Joe Bellus 2022-10-16 20:58:51 -04:00
parent 336313867d
commit 015599cfeb
3 changed files with 34 additions and 0 deletions

4
README.org Normal file
View File

@ -0,0 +1,4 @@
* Abacus
[[abacus_demo.png]]

View File

@ -37,6 +37,8 @@ pub fn setup_engine(engine: &mut rhai::Engine) {
engine.register_fn("-", script_functions::subtract_series_i64);
engine.register_fn("-", script_functions::subtract_series_f64);
engine.register_fn("**", script_functions::power_series_f64);
engine.register_fn("**", script_functions::power_series_i64);
engine.register_fn("*", script_functions::multiply_series_series);
engine.register_fn("*", script_functions::multiply_series_i64);
engine.register_fn("*", script_functions::multiply_series_f64);
@ -283,6 +285,34 @@ mod script_functions {
Series(a.0 - b.0)
}
pub fn power_series_i64(a: Series, b: i64) -> ScriptResult<Series> {
let name = a.name();
let a_series = a.0.clone();
let df = a_series
.into_frame()
.lazy()
.select([polars::prelude::col(name).pow(b)])
.collect()
.map_err(|e| e.to_string())?;
let s = df.column(name).map_err(|e| e.to_string())?;
Ok(Series(s.clone()))
}
pub fn power_series_f64(a: Series, b: f64) -> ScriptResult<Series> {
let name = a.name();
let a_series = a.0.clone();
let df = a_series
.into_frame()
.lazy()
.select([polars::prelude::col(name).pow(b)])
.collect()
.map_err(|e| e.to_string())?;
let s = df.column(name).map_err(|e| e.to_string())?;
Ok(Series(s.clone()))
}
pub fn multiply_series_i64(a: Series, b: i64) -> Series {
Series(a.0 * b)
}

BIN
abacus_demo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB