def projection(self, exprs): w = self._get_window() windowed_exprs = [] for expr in exprs: expr = L.windowize_function(expr, w=w) windowed_exprs.append(expr) return self.table.projection(windowed_exprs)
def projection(self, exprs): """ Like mutate, but do not include existing table columns """ w = self._get_window() windowed_exprs = [] exprs = self.table._resolve(exprs) for expr in exprs: expr = L.windowize_function(expr, w=w) windowed_exprs.append(expr) return self.table.projection(windowed_exprs)
def _cumulative_to_window(translator, expr, window): win = W.cumulative_window() win = win.group_by(window._group_by).order_by(window._order_by) op = expr.op() klass = _cumulative_to_reduction[type(op)] new_op = klass(*op.args) new_expr = expr._factory(new_op, name=expr._name) if type(new_op) in translator._rewrites: new_expr = translator._rewrites[type(new_op)](new_expr) return L.windowize_function(new_expr, win)
def projection(self, exprs): """Project new columns out of the grouped table. See Also -------- ibis.expr.groupby.GroupedTableExpr.mutate """ w = self._get_window() windowed_exprs = [] exprs = self.table._resolve(exprs) for expr in exprs: expr = L.windowize_function(expr, w=w) windowed_exprs.append(expr) return self.table.projection(windowed_exprs)
def projection(self, exprs): """Project new columns out of the grouped table. See Also -------- ibis.expr.groupby.GroupedTable.mutate """ w = self._get_window() windowed_exprs = [] for expr in util.promote_list(exprs): expr = self.table._ensure_expr(expr) expr = L.windowize_function(expr, w=w) windowed_exprs.append(expr) return self.table.projection(windowed_exprs)
def _cumulative_to_window(expr, window): win = ibis.cumulative_window() win = (win.group_by(window._group_by) .order_by(window._order_by)) op = expr.op() klass = _cumulative_to_reduction[type(op)] new_op = klass(*op.args) new_expr = expr._factory(new_op, name=expr._name) if type(new_op) in _expr_rewrites: new_expr = _expr_rewrites[type(new_op)](new_expr) new_expr = L.windowize_function(new_expr, win) return new_expr
def cumulative_to_window(translator, expr, window): win = ibis.cumulative_window() win = win.group_by(window._group_by).order_by(window._order_by) op = expr.op() klass = _cumulative_to_reduction[type(op)] new_op = klass(*op.args) new_expr = new_op.to_expr() if expr.has_name(): new_expr = new_expr.name(expr.get_name()) if type(new_op) in translator._rewrites: new_expr = translator._rewrites[type(new_op)](new_expr) new_expr = L.windowize_function(new_expr, win) return new_expr