Skip to main content
Version: Python

agg_by

agg_by applies a list of aggregations to table data.

Syntax

agg_by(agg_list, by=[columnNames...])

Parameters

ParameterTypeDescription
agg_listagg_list

A list of aggregations to compute. The following aggregations are available:

byarray

The column(s) by which to group data, listed as an array.

caution

If an aggregation does not rename the resulting column, the aggregation column will appear in the output table, not the input column. If multiple aggregations on the same column do not rename the resulting columns, an error will result, because the aggregations are trying to create multiple columns with the same name. For example, in table.agg_by([agg.sum_(“X”), agg.avg(“X”)]), both the sum and the average aggregators produce column X, which results in an error.

Returns

Aggregated table data based on the aggregation types specified in the agg_list.

Examples

In this example, agg.first returns the first Y value as grouped by X.

from deephaven import new_table
from deephaven.column import string_col, int_col, double_col
from deephaven import agg as agg

source = new_table([
string_col("X", ["A", "B", "A", "C", "B", "A", "B", "B", "C"]),
string_col("Y", ["M", "N", "O", "N", "P", "M", "O", "P", "M"]),
int_col("Number", [55, 76, 20, 130, 230, 50, 73, 137, 214]),
])

result = source.agg_by([agg.first(cols=["Y"])], by=["X"])

In this example, agg.group returns an array of values from the Number column (Numbers), and agg.max_ returns the maximum value from the Number column (MaxNumber), as grouped by X.

from deephaven import new_table
from deephaven.column import string_col, int_col, double_col
from deephaven import agg as agg

source = new_table([
string_col("X", ["A", "B", "A", "C", "B", "A", "B", "B", None]),
string_col("Y", ["M", "N", None, "N", "P", "M", None, "P", "M"]),
int_col("Number", [55, 76, 20, 130, 230, 50, 73, 137, 214]),
])

result = source.agg_by([agg.group(cols=["Numbers = Number"]),agg.max_(cols=["MaxNumber = Number"])], by=["X"])