def _eager(self, pytmp=True): if not self._computed: # top-level call to execute all subparts of self._ast sb = self._ast._eager() if pytmp: h2o.rapids(ExprNode._collapse_sb(sb), self._id) sb = ["%", self._id," "] self._update() # fill out _nrows, _ncols, _col_names, _computed return sb
def _eager(self, pytmp=True): if not self._computed: # top-level call to execute all subparts of self._ast sb = self._ast._eager() if pytmp: res = h2o.rapids(ExprNode._collapse_sb(sb), self._id) # t = res["result_type"] # if t in [1,3]: sb = ["#{} ".format(res["scalar"])] # elif t in [2,4]: sb = ["\"{}\"".format(res["string"])] sb = ["%", self._id," "] self._update() # fill out _nrows, _ncols, _col_names, _computed return sb
def rapids(expr, id=None): """ Fire off a Rapids expression. :param expr: The rapids expression (ascii string). :return: The JSON response of the Rapids execution """ if isinstance(expr, list): expr = ExprNode._collapse_sb(expr) expr = "(= !{} {})".format(id,expr) if id is not None else expr result = H2OConnection.post_json("Rapids", ast=urllib.quote(expr), _rest_version=99) if result['error'] is not None: raise EnvironmentError("rapids expression not evaluated: {0}".format(str(result['error']))) return result
def __setitem__(self, b, c): """ Replace a column in an H2OFrame. :param b: A 0-based index or a column name. :param c: The vector that 'b' is replaced with. :return: Returns this H2OFrame. """ update_index=-1 if isinstance(b, (str,unicode)): update_index=self.col_names().index(b) if b in self.col_names() else self._ncols elif isinstance(b, int): update_index=b lhs = ExprNode("[", self, b, None) if isinstance(b,H2OFrame) else ExprNode("[", self, None, update_index) rhs = c._frame() if isinstance(c,H2OFrame) else c col_name = b if (update_index==self._ncols and isinstance(b, (str, unicode))) else ( c._col_names[0] if isinstance(c, H2OFrame) else "" ) sb = ExprNode(",", ExprNode("=",lhs,rhs), ExprNode("colnames=",self,update_index,col_name))._eager() if update_index >= self.ncol() else ExprNode("=",lhs,rhs)._eager() h2o.rapids(ExprNode._collapse_sb(sb)) self._update()
def cbind(self,data): """ :param data: H2OFrame or H2OVec to cbind to self :return: void """ return H2OFrame(expr=ExprNode("cbind", False, self, data))
def any(self,na_rm=False): """ :return: True if any element is True in the column. """ return H2OFrame(expr=ExprNode("any",self,na_rm))._scalar()
def isnumeric(self): """ :return: True if the column is numeric, otherwise return False """ return H2OFrame(expr=ExprNode("is.numeric",self))._scalar()
def cumsum(self): """ :return: The cumulative sum over the column. """ return H2OFrame(expr=ExprNode("cumsum",self))
def cummax(self): """ :return: The cumulative max over the column. """ return H2OFrame(expr=ExprNode("cummax",self))
def sign(self) : return H2OFrame(expr=ExprNode("sign", self)) def sqrt(self) : return H2OFrame(expr=ExprNode("sqrt", self))
def digamma(self) : return H2OFrame(expr=ExprNode("digamma", self)) def trigamma(self): return H2OFrame(expr=ExprNode("trigamma", self))
def tanpi(self) : return H2OFrame(expr=ExprNode("tanpi", self)) def abs(self) : return H2OFrame(expr=ExprNode("abs", self))
def abs(self) : return H2OFrame(expr=ExprNode("abs", self)) def sign(self) : return H2OFrame(expr=ExprNode("sign", self))
def sinpi(self) : return H2OFrame(expr=ExprNode("sinpi", self)) def tanpi(self) : return H2OFrame(expr=ExprNode("tanpi", self))
def cospi(self) : return H2OFrame(expr=ExprNode("cospi", self)) def sinpi(self) : return H2OFrame(expr=ExprNode("sinpi", self))
def atanh(self) : return H2OFrame(expr=ExprNode("atanh", self)) def cospi(self) : return H2OFrame(expr=ExprNode("cospi", self))
def asinh(self) : return H2OFrame(expr=ExprNode("asinh", self)) def atanh(self) : return H2OFrame(expr=ExprNode("atanh", self))
def sqrt(self) : return H2OFrame(expr=ExprNode("sqrt", self)) def trunc(self) : return H2OFrame(expr=ExprNode("trunc", self))
def gamma(self) : return H2OFrame(expr=ExprNode("gamma", self)) def lgamma(self) : return H2OFrame(expr=ExprNode("lgamma", self))
def trunc(self) : return H2OFrame(expr=ExprNode("trunc", self)) def ceil(self) : return H2OFrame(expr=ExprNode("ceiling", self))
def trigamma(self): return H2OFrame(expr=ExprNode("trigamma", self)) @staticmethod
def ceil(self) : return H2OFrame(expr=ExprNode("ceiling", self)) def floor(self) : return H2OFrame(expr=ExprNode("floor", self))
def cumprod(self): """ :return: The cumulative product over the column. """ return H2OFrame(expr=ExprNode("cumprod",self))
def floor(self) : return H2OFrame(expr=ExprNode("floor", self)) def log(self) : return H2OFrame(expr=ExprNode("log", self))
def prod(self,na_rm=False): """ :return: The product of the column. """ return H2OFrame(expr=ExprNode("prod",self,na_rm))._scalar()
def log10(self) : return H2OFrame(expr=ExprNode("log10", self)) def log1p(self) : return H2OFrame(expr=ExprNode("log1p", self))
def all(self): """ :return: True if every element is True in the column. """ return H2OFrame(expr=ExprNode("all",self,False))._scalar()
def log2(self) : return H2OFrame(expr=ExprNode("log2", self)) def exp(self) : return H2OFrame(expr=ExprNode("exp", self))
def isstring(self): """ :return: True if the column is a string column, otherwise False (same as ischaracter) """ return H2OFrame(expr=ExprNode("is.character",self))._scalar()
def sinh(self) : return H2OFrame(expr=ExprNode("sinh", self)) def tanh(self) : return H2OFrame(expr=ExprNode("tanh", self))
def min(self): """ :return: The minimum value of all frame entries """ return H2OFrame(expr=ExprNode("min", self))._scalar()
def expm1(self) : return H2OFrame(expr=ExprNode("expm1", self)) def gamma(self) : return H2OFrame(expr=ExprNode("gamma", self))
def exp(self) : return H2OFrame(expr=ExprNode("exp", self)) def expm1(self) : return H2OFrame(expr=ExprNode("expm1", self))
def tanh(self) : return H2OFrame(expr=ExprNode("tanh", self)) def acosh(self) : return H2OFrame(expr=ExprNode("acosh", self))