rolling_prod_tick
rolling_prod_tick creates a rolling product in an update_by table operation using table ticks as the windowing unit. Ticks are row counts. The rolling product can be calculated using forward and/or backward windows.
Syntax
rolling_prod_tick(cols: list[str], rev_ticks: int, fwd_ticks: int) -> UpdateByOperation
Parameters
| Parameter | Type | Description |
|---|---|---|
| cols | list[str] | The column(s) to be operated on. These can include expressions to rename the output (e.g., |
| rev_ticks | int | 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_ticks | int | 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_prod_tick operations. Each operation uses different rev_ticks and fwd_ticks values to show how they affect the output.
from deephaven.updateby import rolling_prod_tick
from deephaven import empty_table
source = (
empty_table(10)
.update(["Letter = (i % 2 == 0) ? `A` : `B`"])
.update(["X = randomInt(0, 100)"])
)
op_before = rolling_prod_tick(cols=["OpBefore = X"], rev_ticks=3, fwd_ticks=-1)
op_after = rolling_prod_tick(cols=["OpAfter = X"], rev_ticks=-1, fwd_ticks=3)
op_middle = rolling_prod_tick(cols=["OpMiddle = X"], rev_ticks=1, fwd_ticks=1)
result = source.update_by(ops=[op_before, op_after, op_middle], by="Letter")