rolling_count_tick
rolling_count_tick
creates an update_by
table operation that keeps a count of the number of values that exist in a rolling window, using using table ticks as the windowing unit. Ticks are row counts. The rolling count can be calculated using forward and/or backward windows.
Syntax
rolling_count_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 rolling_count_tick
.
from deephaven.updateby import rolling_count_tick
from deephaven import new_table
from deephaven.constants import NULL_INT
from deephaven.column import int_col, string_col
source = new_table(
cols=[
string_col("Letter", ["A", "B", "A", "B", "A", "B", "A", "B", "A", "B"]),
int_col("X", [1, 3, NULL_INT, 3, 4, NULL_INT, NULL_INT, 5, NULL_INT, 4]),
]
)
op_before = rolling_count_tick(cols=["OpBefore = X"], rev_ticks=3, fwd_ticks=-1)
op_after = rolling_count_tick(cols=["OpAfter = X"], rev_ticks=-1, fwd_ticks=3)
op_middle = rolling_count_tick(cols=["OpMiddle = X"], rev_ticks=1, fwd_ticks=1)
result = source.update_by(ops=[op_before, op_after, op_middle], by="Letter")
- source
- result