package Ġorg . jetbrains . kotlin x . dataframe . impl Ċ Ċ import Ġorg . jetbrains . kotlin x . dataframe . Column Selector Ċ import Ġorg . jetbrains . kotlin x . dataframe . Columns Selector Ċ import Ġorg . jetbrains . kotlin x . dataframe . DataFrame Ċ import Ġorg . jetbrains . kotlin x . dataframe . Selector Ċ import Ġorg . jetbrains . kotlin x . dataframe . aggregation . Aggregate Group ed Body Ċ import Ġorg . jetbrains . kotlin x . dataframe . aggregation . Named Value Ċ import Ġorg . jetbrains . kotlin x . dataframe . api . GroupBy Ċ import Ġorg . jetbrains . kotlin x . dataframe . api . Group ed Row Filter Ċ import Ġorg . jetbrains . kotlin x . dataframe . api . as GroupBy Ċ import Ġorg . jetbrains . kotlin x . dataframe . api . cast Ċ import Ġorg . jetbrains . kotlin x . dataframe . api . concat Ċ import Ġorg . jetbrains . kotlin x . dataframe . api . convert Ċ import Ġorg . jetbrains . kotlin x . dataframe . api . getColumn Ċ import Ġorg . jetbrains . kotlin x . dataframe . api . get Columns With Paths Ċ import Ġorg . jetbrains . kotlin x . dataframe . api . into Ċ import Ġorg . jetbrains . kotlin x . dataframe . api . minus Ċ import Ġorg . jetbrains . kotlin x . dataframe . api . path Of Ċ import Ġorg . jetbrains . kotlin x . dataframe . api . rename Ċ import Ġorg . jetbrains . kotlin x . dataframe . columns . Frame Column Ċ import Ġorg . jetbrains . kotlin x . dataframe . impl . aggregation . Ag greg atable Internal Ċ import Ġorg . jetbrains . kotlin x . dataframe . impl . aggregation . GroupBy Receiver Impl Ċ import Ġorg . jetbrains . kotlin x . dataframe . impl . api . Ag gregated Pivot Ċ import Ġorg . jetbrains . kotlin x . dataframe . impl . api . Column To Insert Ċ import Ġorg . jetbrains . kotlin x . dataframe . impl . api . Group ed DataRow Impl Ċ import Ġorg . jetbrains . kotlin x . dataframe . impl . api . insert Impl Ċ import Ġorg . jetbrains . kotlin x . dataframe . impl . api . remove Impl Ċ import Ġorg . jetbrains . kotlin x . dataframe . impl . columns . to Columns Ċ import Ġorg . jetbrains . kotlin x . dataframe . n col Ċ import Ġorg . jetbrains . kotlin x . dataframe . n row Ċ import Ġorg . jetbrains . kotlin x . dataframe . values Ċ Ċ internal Ġclass ĠGroup By Impl < T , ĠG >( ĊĠĠĠ Ġval Ġdf : ĠDataFrame < T >, ĊĠĠĠ Ġoverride Ġval Ġgroups : ĠFrame Column < G >, ĊĠĠĠ Ġinternal Ġval Ġkey Columns In Groups : ĠColumns Selector < G , Ġ*> Ċ ) Ġ: ĊĠĠĠ ĠGroup By < T , ĠG >, ĊĠĠĠ ĠAg greg atable Internal < G > Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġkeys Ġby Ġlazy Ġ{ Ġdf Ġ- Ġgroups Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< R > Ġupdate Groups ( transform : ĠSelector < DataFrame < G >, ĠDataFrame < R >>) Ġ= ĊĠĠĠĠĠĠĠ Ġdf . convert ( groups ) Ġ{ Ġtransform ( it , Ġit ) Ġ}. as GroupBy ( groups . name ()) Ġas ĠGroup By < T , ĠR > ĊĊĠĠĠ Ġoverride Ġfun Ġto DataFrame ( grouped ColumnName : ĠString ?) Ġ= Ġif Ġ( grouped ColumnName Ġ== Ġnull Ġ|| Ġgrouped ColumnName Ġ== Ġgroups . name ()) Ġdf Ġelse Ġdf . rename ( groups ). into ( grouped ColumnName ) ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġdf . toString () ĊĊĠĠĠ Ġoverride Ġfun Ġremaining Columns Selector (): ĠColumns Selector < *, Ġ*> Ġ= Ġkey Columns In Groups . to Columns (). let Ġ{ Ġgroup Cols Ġ-> Ġ{ Ġall (). except ( group Cols ) Ġ} Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< R > Ġaggregate ( body : ĠAggregate Group ed Body < G , ĠR >) Ġ= Ġaggregate GroupBy ( to DataFrame (), Ġ{ Ġgroups Ġ}, Ġremove Columns Ġ= Ġtrue , Ġbody ). cast < G >() ĊĊĠĠĠ Ġoverride Ġfun Ġfilter ( predicate : ĠGroup ed Row Filter < T , ĠG >): ĠGroup By < T , ĠG > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġindices Ġ= Ġ( 0 Ġuntil Ġdf . n row ). filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrow Ġ= ĠGroup ed DataRow Impl ( df . get ( it ), Ġgroups ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpredicate ( row , Ġrow ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġdf [ indices ]. as GroupBy ( groups ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġfun Ġ< T , ĠG , ĠR > Ġaggregate GroupBy ( ĊĠĠĠ Ġdf : ĠDataFrame < T >, ĊĠĠĠ Ġselector : ĠColumn Selector < T , ĠDataFrame < G >? >, ĊĠĠĠ Ġremove Columns : ĠBoolean , ĊĠĠĠ Ġbody : ĠAggregate Group ed Body < G , ĠR > Ċ ): ĠDataFrame < T > Ġ{ ĊĠĠĠ Ġval Ġdefault Aggregate Name Ġ= Ġ" ag gregated " ĊĊĠĠĠ Ġval Ġcolumn Ġ= Ġdf . getColumn ( selector ) ĊĊĠĠĠ Ġval Ġremoved Ġ= Ġdf . remove Impl ( columns Ġ= Ġselector ) ĊĊĠĠĠ Ġval Ġhas Key Columns Ġ= Ġremoved . df . n col Ġ> Ġ 0 ĊĊĠĠĠ Ġval Ġgrouped Frame Ġ= Ġcolumn . values . map Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it Ġ== Ġnull ) Ġnull ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠGroup By Receiver Impl ( it , Ġhas Key Columns ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġbody ( builder , Ġbuilder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= ĠUnit Ġ&& Ġresult Ġ! is ĠNamed Value Ġ&& Ġresult Ġ! is ĠAg gregated Pivot <* >) Ġbuilder . yield ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNamed Value . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpath Of ( default Aggregate Name ), Ġresult , Ġnull , Ġnull , Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . compute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}. concat () ĊĊĠĠĠ Ġval Ġremoved Node Ġ= Ġremoved . removed Columns . single () ĊĠĠĠ Ġval Ġinsert Path Ġ= Ġremoved Node . path From Root (). drop Last ( 1 ) ĊĊĠĠĠ Ġif Ġ(! remove Columns ) Ġremoved Node . data . was Removed Ġ= Ġfalse ĊĊĠĠĠ Ġval Ġcolumns To Insert Ġ= Ġgrouped Frame . get Columns With Paths Ġ{ Ġall D fs () Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠ ĠColumn To Insert ( insert Path Ġ+ Ġit . path , Ġit , Ġremoved Node ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġsrc Ġ= Ġif Ġ( remove Columns ) Ġremoved . df Ġelse Ġdf ĊĠĠĠ Ġreturn Ġsrc . insert Impl ( columns To Insert ) Ċ } Ċ