Groupby.agg
Obtain data aggregate per groups for each column
danfo.Groupby.agg(kwargs) [source]
Parameters
Type
Description
Default
ops
Object
keys are column names and values are aggregation operator
{}
Return: DataFrame
Examples
Aggregation using one aggregate operator per column
  1. 1.
    Assigning mean and sum aggregate to different column
Node
1
const dfd = require("danfojs-node")
2
3
4
let data ={'A': ['foo', 'bar', 'foo', 'bar',
5
'foo', 'bar', 'foo', 'foo'],
6
'B': ['one', 'one', 'two', 'three',
7
'two', 'two', 'one', 'three'],
8
'C': [1,3,2,4,5,2,6,7],
9
'D': [3,2,4,1,5,6,7,8]
10
}
11
12
let df = new dfd.DataFrame(data)
13
14
let grp = df.groupby(["A"])
15
grp.agg({C:"mean",D:"sum"}).print()
Copied!
1
Shape: (2,3)
2
3
╔════════════╤═══════════════════╤═══════════════════╤═══════════════════╗
4
║ │ A │ C_mean │ D_sum ║
5
╟────────────┼───────────────────┼───────────────────┼───────────────────╢
6
║ 0 │ foo │ 4.2 │ 27 ║
7
╟────────────┼───────────────────┼───────────────────┼───────────────────╢
8
║ 1 │ bar │ 3 │ 9 ║
9
╚════════════╧═══════════════════╧═══════════════════╧═══════════════════╝
Copied!
  1. 1.
    Mean and Sum aggregate on dataframe grouped by two column
Node
1
const dfd = require("danfojs-node")
2
3
4
let data ={'A': ['foo', 'bar', 'foo', 'bar',
5
'foo', 'bar', 'foo', 'foo'],
6
'B': ['one', 'one', 'two', 'three',
7
'two', 'two', 'one', 'three'],
8
'C': [1,3,2,4,5,2,6,7],
9
'D': [3,2,4,1,5,6,7,8]
10
}
11
12
let df = new dfd.DataFrame(data)
13
14
let grp = df.groupby(["A","B"])
15
grp.agg({C:"mean",D:"sum"}).print()
Copied!
1
╔════════════╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗
2
║ │ A │ B │ C_mean │ D_sum ║
3
╟────────────┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
4
║ 0 │ foo │ one │ 3.5 │ 10 ║
5
╟────────────┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
6
║ 1 │ foo │ two │ 3.5 │ 9 ║
7
╟────────────┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
8
║ 2 │ foo │ three │ 7 │ 8 ║
9
╟────────────┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
10
║ 3 │ bar │ one │ 3 │ 2 ║
11
╟────────────┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
12
║ 4 │ bar │ three │ 4 │ 1 ║
13
╟────────────┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
14
║ 5 │ bar │ two │ 2 │ 6 ║
15
╚════════════╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝
Copied!
Aggregation using two or more aggregate operator per column
Assigning mean and sum, min, std, count aggregate to different column
Node
1
const dfd = require("danfojs-node")
2
3
4
let data ={'A': ['foo', 'bar', 'foo', 'bar',
5
'foo', 'bar', 'foo', 'foo'],
6
'B': ['one', 'one', 'two', 'three',
7
'two', 'two', 'one', 'three'],
8
'C': [1,3,2,4,5,2,6,7],
9
'D': [3,2,4,1,5,6,7,8]
10
}
11
12
let df = new dfd.DataFrame(data)
13
14
let grp = df.groupby(["A"])
15
grp.agg({C:["mean", "sum", "min"],
16
D:["sum", "count", "std"]}).print()
Copied!
1
╔════════════╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗
2
║ │ A │ C_mean │ C_sum │ C_min │ D_sum │ D_count │ D_std ║
3
╟────────────┼───────────────────┼───────────────────┼───────────────────┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
4
║ 0 │ foo │ 4.2 │ 21 │ 1 │ 27 │ 5 │ 2.0736441353327… ║
5
╟────────────┼───────────────────┼───────────────────┼───────────────────┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
6
║ 1 │ bar │ 3 │ 9 │ 2 │ 9 │ 3 │ 2.6457513110645… ║
7
╚════════════╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝
Copied!
Copy link