Skip to content

Commit eef1c48

Browse files
committed
update groupby.apply method
1 parent 56803dc commit eef1c48

1 file changed

Lines changed: 27 additions & 3 deletions

File tree

src/danfojs-base/aggregators/groupby.ts

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)