コード例 #1
0
def aggregate(transform: dict, expr: ibis.Expr) -> ibis.Expr:
    groupby, = transform["groupby"]
    op, = transform["ops"]
    field, = transform["fields"]
    as_, = transform["as"]
    expr = expr.group_by(groupby).aggregate(
        [getattr(expr[field], _translate_op(op))().name(as_)])
    return expr
コード例 #2
0
def aggregate(transform: dict, expr: ibis.Expr) -> ibis.Expr:
    groupby = transform["groupby"]
    # It's undocumented, but an undefined "ops" value defaults to ["count"]'
    # https://github.com/vega/vega/blob/4d10f9da0df0833c90ff259bbd0960f7cb05e3bf/packages/vega-transforms/src/Aggregate.js#L159-L161
    ops = transform.get("ops", ["count"])
    fields = transform.get("fields", [None])
    as_ = transform.get("as", [None])

    expr = expr.group_by(groupby).aggregate([
        _aggregate(expr, field, op, as__)
        for (field, op, as__) in zip(fields, ops, as_)
    ])
    return expr