Groupby.cummax
Obtain the cummulative max per groups for each column
danfo.Groupby.cumMax() [source]
Parameters: None
Return: DataFrame
Examples
Obtain the cumulative max of a column for each groups, group by one 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.col(["C"]).cumMax().head().print()
16
grp.col(["C"]).cumMax().tail().print()
Copied!
1
Shape: (5,2)
2
3
╔═══╤═══════════════════╤═══════════════════╗
4
║ │ A │ C_cummax ║
5
╟───┼───────────────────┼───────────────────╢
6
║ 0 │ foo │ 1 ║
7
╟───┼───────────────────┼───────────────────╢
8
║ 1 │ foo │ 2 ║
9
╟───┼───────────────────┼───────────────────╢
10
║ 2 │ foo │ 5 ║
11
╟───┼───────────────────┼───────────────────╢
12
║ 3 │ foo │ 6 ║
13
╟───┼───────────────────┼───────────────────╢
14
║ 4 │ foo │ 7 ║
15
╚═══╧═══════════════════╧═══════════════════╝
16
17
18
Shape: (5,2)
19
20
╔═══╤═══════════════════╤═══════════════════╗
21
║ │ A │ C_cummax ║
22
╟───┼───────────────────┼───────────────────╢
23
║ 3 │ foo │ 6 ║
24
╟───┼───────────────────┼───────────────────╢
25
║ 4 │ foo │ 7 ║
26
╟───┼───────────────────┼───────────────────╢
27
║ 5 │ bar │ 3 ║
28
╟───┼───────────────────┼───────────────────╢
29
║ 6 │ bar │ 4 ║
30
╟───┼───────────────────┼───────────────────╢
31
║ 7 │ bar │ 4 ║
32
╚═══╧═══════════════════╧═══════════════════╝
Copied!
Obtain the cumsum for two columns for each group, group by one 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.col(["C","D"]).cumMax().head().print()
16
grp.col(["C","D"]).cumMax().tail().print()
Copied!
1
2
Shape: (5,3)
3
4
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
5
║ │ A │ C_cummax │ D_cummax ║
6
╟───┼───────────────────┼───────────────────┼───────────────────╢
7
║ 0 │ foo │ 1 │ 3 ║
8
╟───┼───────────────────┼───────────────────┼───────────────────╢
9
║ 1 │ foo │ 2 │ 4 ║
10
╟───┼───────────────────┼───────────────────┼───────────────────╢
11
║ 2 │ foo │ 5 │ 5 ║
12
╟───┼───────────────────┼───────────────────┼───────────────────╢
13
║ 3 │ foo │ 6 │ 7 ║
14
╟───┼───────────────────┼───────────────────┼───────────────────╢
15
║ 4 │ foo │ 7 │ 8 ║
16
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
17
18
19
Shape: (5,3)
20
21
╔════╤═══════════════════╤═══════════════════╤═══════════════════╗
22
║ │ A │ C_cummax │ D_cummax ║
23
╟────┼───────────────────┼───────────────────┼───────────────────╢
24
║ 11 │ bar │ 4 │ 2 ║
25
╟────┼───────────────────┼───────────────────┼───────────────────╢
26
║ 12 │ bar │ 4 │ 6 ║
27
╟────┼───────────────────┼───────────────────┼───────────────────╢
28
║ 13 │ bar │ 3 │ 2 ║
29
╟────┼───────────────────┼───────────────────┼───────────────────╢
30
║ 14 │ bar │ 4 │ 2 ║
31
╟────┼───────────────────┼───────────────────┼───────────────────╢
32
║ 15 │ bar │ 4 │ 6 ║
33
╚════╧═══════════════════╧═══════════════════╧═══════════════════╝
Copied!
Obtain the cummax for a column for each group, group by two columns
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.col(["C"]).cumMax().head().print()
16
grp.col(["C"]).cumMax().tail().print()
Copied!
1
Shape: (5,3)
2
3
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
4
║ │ A │ B │ C_cummax ║
5
╟───┼───────────────────┼───────────────────┼───────────────────╢
6
║ 0 │ foo │ one │ 1 ║
7
╟───┼───────────────────┼───────────────────┼───────────────────╢
8
║ 1 │ foo │ one │ 6 ║
9
╟───┼───────────────────┼───────────────────┼───────────────────╢
10
║ 2 │ foo │ two │ 2 ║
11
╟───┼───────────────────┼───────────────────┼───────────────────╢
12
║ 3 │ foo │ two │ 5 ║
13
╟───┼───────────────────┼───────────────────┼───────────────────╢
14
║ 4 │ foo │ three │ 7 ║
15
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
16
17
18
Shape: (5,3)
19
20
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╗
21
║ │ A │ B │ C_cummax ║
22
╟───┼───────────────────┼───────────────────┼───────────────────╢
23
║ 3 │ foo │ two │ 5 ║
24
╟───┼───────────────────┼───────────────────┼───────────────────╢
25
║ 4 │ foo │ three │ 7 ║
26
╟───┼───────────────────┼───────────────────┼───────────────────╢
27
║ 5 │ bar │ one │ 3 ║
28
╟───┼───────────────────┼───────────────────┼───────────────────╢
29
║ 6 │ bar │ two │ 2 ║
30
╟───┼───────────────────┼───────────────────┼───────────────────╢
31
║ 7 │ bar │ three │ 4 ║
32
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╝
Copied!
Obtain the cummax for two columns for each group, group by two columns
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.col(["C","D"]).cumMax().head().print()
16
grp.col(["C","D"]).cumMax().tail().print()
Copied!
1
2
Shape: (5,4)
3
4
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗
5
║ │ A │ B │ C_cummax │ D_cummax ║
6
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
7
║ 0 │ foo │ one │ 1 │ 3 ║
8
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
9
║ 1 │ foo │ one │ 6 │ 7 ║
10
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
11
║ 2 │ foo │ two │ 2 │ 4 ║
12
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
13
║ 3 │ foo │ two │ 5 │ 5 ║
14
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
15
║ 4 │ foo │ three │ 7 │ 8 ║
16
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝
17
18
19
Shape: (5,4)
20
21
╔═══╤═══════════════════╤═══════════════════╤═══════════════════╤═══════════════════╗
22
║ │ A │ B │ C_cummax │ D_cummax ║
23
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
24
║ 3 │ foo │ two │ 5 │ 5 ║
25
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
26
║ 4 │ foo │ three │ 7 │ 8 ║
27
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
28
║ 5 │ bar │ one │ 3 │ 2 ║
29
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
30
║ 6 │ bar │ two │ 2 │ 6 ║
31
╟───┼───────────────────┼───────────────────┼───────────────────┼───────────────────╢
32
║ 7 │ bar │ three │ 4 │ 1 ║
33
╚═══╧═══════════════════╧═══════════════════╧═══════════════════╧═══════════════════╝
Copied!
Copy link