H2O 框架在 python 中的每一行应用函数

H2O Frame apply function on each row in python

我正在寻找一种类似于pandas中的'apply'函数的方法。我试过了

my_H2Oframe.apply(lambda x: my_function(x), axis=1)

但这行不通。

ValueError: Unimplemented: op < my_function > not bound in H2OFrame

我找到了 this question。看来我们只能使用那些已经被H2O定义的函数了。我想一定有一个类似于apply函数的方法,因为这是一个普通的操作。有人有解决办法吗?

目前没有其他应用类型方法。 H2O apply 方法应该与 pandas apply 非常接近。确实H2O的apply功能仅限于某些操作,例如加(+),减(-),除等。如果你使用H2O没有的功能,你会得到上面的错误。

这里有几个例子来尝试看看 apply 函数是如何工作的(第一个获取跨列的平均值,第二个 returns 一个布尔列):

h2oframe = h2o.import_file("http://h2o-public-test-data.s3.amazonaws.com/smalldata/prostate/prostate.csv")

h2oframe.apply(lambda x: x.mean(), axis=0)

h2oframe.apply(lambda x: x['PSA'] > x['VOL'],axis=1)

这里是关于它的当前文档:

apply(fun=None, axis=0):
    Apply a lambda expression to an H2OFrame.

    Parameters: 
    fun – a lambda expression to be applied per row or per column.
    axis – 0 = apply to each column; 1 = apply to each row
    Returns:    
    a new H2OFrame with the results of applying fun to the current frame.