blackjack/dataframe/
dataframe_groupby.rs1use num::*;
4use std::iter::Sum;
5
6use crate::prelude::*;
7
8pub struct DataFrameGroupBy<T>
11where
12 T: BlackJackData,
13{
14 groups: Vec<SeriesGroupBy<T>>,
15}
16
17impl<T> DataFrameGroupBy<T>
18where
19 T: BlackJackData + 'static,
20{
21 pub fn new(groups: Vec<SeriesGroupBy<T>>) -> Self {
24 DataFrameGroupBy { groups }
25 }
26
27 pub fn sum(&self) -> DataFrame<i32>
30 where
32 T: BlackJackData + Copy + Sum + Num + Send + Ord,
33 {
34 let mut df = DataFrame::new();
37
38 let _ = self
39 .groups
40 .iter()
41 .map(|series_groupby| series_groupby.sum())
42 .map(|series| df.add_column(series).unwrap())
43 .collect::<Vec<()>>();
44 df
45 }
46}