Skip to main content
Version: Python

rolling_max_tick

rolling_max_tick creates a rolling maximum in an update_by table operation using table ticks as the windowing unit. Ticks are row counts. The rolling maximum can be calculated using forward and/or backward windows.

Syntax

rolling_max_tick(cols: list[str], rev_ticks: int, fwd_ticks: int) -> UpdateByOperation

Parameters

ParameterTypeDescription
colslist[str]

The column(s) to be operated on. These can include expressions to rename the output (e.g., NewCol = Col). When left empty, the rolling maximum is calculated for all applicable columns.

rev_ticksint

The look-behind window size in rows. If positive, it defines the maximum number of rows before the current row that will be used. If negative, it defines the minimum number of rows after the current row that will be used. Includes the current row.

fwd_ticksint

The look-forward window size in rows. If positive, it defines the maximum number of rows after the current row that will be used. If negative, it defines the minimum number of rows before the current row that will be used.

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 three rolling_max_tick operations. Each argument uses a different rev_ticks and fwd_ticks value to show how they affect the output.

from deephaven.updateby import rolling_max_tick
from deephaven import empty_table

source = empty_table(10).update(
["Letter = (i % 2 == 0) ? `A` : `B`", "X = randomInt(0, 100)"]
)

op_before = rolling_max_tick(cols=["OpBefore = X"], rev_ticks=3, fwd_ticks=-1)
op_after = rolling_max_tick(cols=["OpAfter = X"], rev_ticks=-1, fwd_ticks=3)
op_middle = rolling_max_tick(cols=["OpMiddle = X"], rev_ticks=1, fwd_ticks=1)

result = source.update_by(ops=[op_before, op_after, op_middle], by="Letter")