cum_max
cum_max
calculates a cumulative maximum in an update_by
table operation.
Syntax
cum_max(cols: list[str]) -> UpdateByOperation
Parameters
Parameter | Type | Description |
---|---|---|
cols | list[str] | The column(s) to be operated on. These can include expressions to rename the output columns (e.g., |
Returns
An UpdateByOperation
to be used in an update_by
table operation.
Examples
The following example performs an update_by
on the source
table using the cum_max
operation. No grouping columns are given. As a result, the cumulative maximum is calculated for all rows.
from deephaven.updateby import cum_max
from deephaven import empty_table
source = empty_table(25).update(
["Letter = (i % 2 == 0) ? `A` : `B`", "X = randomInt(0, 25)"]
)
result = source.update_by(ops=cum_max(cols=["MaxX = X"]), by=[])
- result
- source
The following example builds on the previous example by specifying Letter
as the grouping column. Thus, the result
table has cumulative maximum calculated per unique letter in that column.
from deephaven.updateby import cum_max
from deephaven import empty_table
source = empty_table(25).update(
["Letter = (i % 2 == 0) ? `A` : `B`", "X = randomInt(0, 25)"]
)
result = source.update_by(ops=cum_max(cols=["MaxX = X"]), by=["Letter"])
- result
- source
The following example builds on the previous example by calculating the cumulative maximum for two columns using a single UpdateByOperation
.
from deephaven.updateby import cum_max
from deephaven import empty_table
source = empty_table(25).update(
[
"Letter = (i % 2 == 0) ? `A` : `B`",
"X = randomInt(0, 25)",
"Y = randomInt(25, 50)",
]
)
result = source.update_by(ops=cum_max(cols=["MaxX = X", "MaxY = Y"]), by=["Letter"])
- result
- source
The following example builds on the previous example by specifying two key columns. Thus, each group is a unique combination of letter in the Letter
column and boolean in the Truth
column.
from deephaven.updateby import cum_max
from deephaven import empty_table
source = empty_table(25).update(
[
"Letter = (i % 2 == 0) ? `A` : `B`",
"Truth = randomBool()",
"X = randomInt(0, 25)",
"Y = randomInt(25, 50)",
]
)
result = source.update_by(
ops=cum_max(cols=["MaxX = X", "MaxY = Y"]), by=["Letter", "Truth"]
)
- result
- source