@@ -381,8 +381,8 @@ export default class Groupby {
381381 return this . operations ( "min" )
382382 }
383383
384- get_groups ( keys : Array < string > ) : DataFrame {
385- let dictKey = keys . join ( "_ " )
384+ get_group ( keys : Array < string > ) : DataFrame {
385+ let dictKey = keys . join ( "- " )
386386 let colDict : { [ key : string ] : { } } = { }
387387 colDict [ dictKey ] = { ...this . colDict [ dictKey ] }
388388 return this . toDataFrame ( colDict )
@@ -396,12 +396,36 @@ export default class Groupby {
396396 return df ;
397397 }
398398
399- apply ( callable : ( x : DataFrame ) => DataFrame | Series ) {
399+ apply ( callable : ( x : DataFrame ) => DataFrame | Series ) : DataFrame {
400400 let colDict : { [ key : string ] : DataFrame | Series } = { }
401401 for ( const [ key , values ] of Object . entries ( this . colDict ) ) {
402402 let valDataframe = new DataFrame ( values )
403403 colDict [ key ] = callable ( valDataframe )
404404 }
405+ return this . concatGroups ( colDict )
406+ }
405407
408+ concatGroups ( colDict : { [ key : string ] : DataFrame | Series } ) : DataFrame {
409+ let data : Array < DataFrame | Series > = [ ]
410+ for ( const [ key , values ] of Object . entries ( colDict ) ) {
411+ let copyDf : DataFrame ;
412+ if ( values instanceof DataFrame ) {
413+ copyDf = values . copy ( )
414+ }
415+ else {
416+ values . print ( )
417+ console . log ( values . values )
418+ copyDf = new DataFrame ( [ values . values ] , { columns : [ 'applyops' ] } )
419+ }
420+ let len = copyDf . shape [ 0 ]
421+ for ( let key1 in this . keyCol ) {
422+ let keyName = this . keyCol [ key1 ] as string
423+ let keyValue = this . keyToValue [ key ] [ key1 ]
424+ let dfValue = Array ( len ) . fill ( keyValue )
425+ copyDf . addColumn ( keyName , dfValue , { inplace : true } )
426+ data . push ( copyDf )
427+ }
428+ }
429+ return concat ( { dfList : data , axis :0 } ) as DataFrame
406430 }
407431}
0 commit comments