datatable.cummax()¶
Added in version 1.1.0
For each column from cols calculate cumulative maximum. In the presence
of by(), the cumulative maximum is computed within each group.
Parameters¶
cols
FExprInput data for cumulative maximum calculation.
reverse
boolIf False, computation is done from top to bottom.
If True, it is done from bottom to top.
return
FExprf-expression that converts input columns into the columns filled with the respective cumulative maximums.
except
TypeErrorThe exception is raised when one of the columns from cols
has a non-numeric type.
Examples¶
Create a sample datatable frame:
from datatable import dt, f, by
DT = dt.Frame({"A": [2, None, 5, -1, 0],
"B": [None, None, None, None, None],
"C": [5.4, 3, 2.2, 4.323, 3],
"D": ['a', 'a', 'b', 'b', 'b']})
| A | B | C | D | ||
|---|---|---|---|---|---|
| int32 | void | float64 | str32 | ||
| 0 | 2 | NA | 5.4 | a | |
| 1 | NA | NA | 3 | a | |
| 2 | 5 | NA | 2.2 | b | |
| 3 | -1 | NA | 4.323 | b | |
| 4 | 0 | NA | 3 | b |
Calculate the cumulative maximum in a single column:
DT[:, dt.cummax(f.A)]
| A | ||
|---|---|---|
| int32 | ||
| 0 | 2 | |
| 1 | 2 | |
| 2 | 5 | |
| 3 | 5 | |
| 4 | 5 |
Calculate the cumulative maximum from bottom to top:
DT[:, dt.cummax(f.A, reverse=True)]
| A | ||
|---|---|---|
| int32 | ||
| 0 | 5 | |
| 1 | 5 | |
| 2 | 5 | |
| 3 | 0 | |
| 4 | 0 |
Calculate the cumulative maximum in multiple columns:
DT[:, dt.cummax(f[:-1])]
| A | B | C | ||
|---|---|---|---|---|
| int32 | void | float64 | ||
| 0 | 2 | NA | 5.4 | |
| 1 | 2 | NA | 5.4 | |
| 2 | 5 | NA | 5.4 | |
| 3 | 5 | NA | 5.4 | |
| 4 | 5 | NA | 5.4 |
For a grouped frame calculate the cumulative maximum within each group:
DT[:, dt.cummax(f[:]), by('D')]
| D | A | B | C | ||
|---|---|---|---|---|---|
| str32 | int32 | void | float64 | ||
| 0 | a | 2 | NA | 5.4 | |
| 1 | a | 2 | NA | 5.4 | |
| 2 | b | 5 | NA | 2.2 | |
| 3 | b | 5 | NA | 4.323 | |
| 4 | b | 5 | NA | 4.323 |
The content on this page is licensed under the Creative Commons Attribution 4.0 License
(CC BY 4.0) ,
and code samples are licensed under the MIT License.