def group_by(self, by=None, **additional_grouping_expressions): """ Create an intermediate grouped table expression, pending some group operation to be applied with it. Examples -------- >>> import ibis >>> pairs = [('a', 'int32'), ('b', 'timestamp'), ('c', 'double')] >>> t = ibis.table(pairs) >>> b1, b2 = t.a, t.b >>> result = t.group_by([b1, b2]).aggregate(sum_of_c=t.c.sum()) Notes ----- group_by and groupby are equivalent, with `groupby` being provided for ease-of-use for pandas users. Returns ------- grouped_expr : GroupedTableExpr """ from ibis.expr.groupby import GroupedTableExpr return GroupedTableExpr(self, by, **additional_grouping_expressions)
def group_by(self, by): """ Create an intermediate grouped table expression, pending some group operation to be applied with it. Examples -------- x.group_by([b1, b2]).aggregate(metrics) Returns ------- grouped_expr : GroupedTableExpr """ from ibis.expr.groupby import GroupedTableExpr return GroupedTableExpr(self, by)
def group_by(self, by=None, **additional_grouping_expressions): """ Create an intermediate grouped table expression, pending some group operation to be applied with it. Examples -------- x.group_by([b1, b2]).aggregate(metrics) Notes ----- group_by and groupby are equivalent, with `groupby` being provided for ease-of-use for pandas users. Returns ------- grouped_expr : GroupedTableExpr """ from ibis.expr.groupby import GroupedTableExpr return GroupedTableExpr(self, by, **additional_grouping_expressions)
def __call__(self, grouped: GroupedTableExpr) -> ir.Expr: return grouped.aggregate([ operation(grouped.table).name(name) for name, operation in self.metrics ])