我在使用anaconda 4.3.22下的Python 3.6.1中的H2O应用功能时遇到问题。我正在Windows 10上运行H2O 3.10.4.4版本。我怀疑这可能是一个错误(或者文档中存在错误。)
我从H2O小册子中获取了此示例代码段,第14页: http://docs.h2o.ai/h2o/latest-stable/h2o-docs/booklets/PythonBooklet.pdf
df5 = h2o.H2OFrame.from_python(np.random.randn(100,4).tolist(), column_names=list("ABCD"))
df5.apply(lambda x: x.mean(na_rm=True))
我收到了错误:
IndexError Traceback (most recent call last)
<ipython-input-138-e45989298b6f> in <module>()
1 df5 = h2o.H2OFrame.from_python(np.random.randn(100,4).tolist(), column_names=
2 list("ABCD"))
----> 3 df5.apply(lambda x: x.mean(na_rm=True))
C:\cygwin64\usr\local\anaconda3\lib\site-packages\h2o\frame.py in apply(self, fun, axis)
2756 assert_is_type(fun, FunctionType)
2757 assert_satisfies(fun, fun.__name__ == "<lambda>")
-> 2758 res = _bytecode_decompile_lambda(fun.__code__)
2759 return H2OFrame._expr(expr=ExprNode("apply", self, 1 + (axis == 0), *res))
2760
C:\cygwin64\usr\local\anaconda3\lib\site-packages\h2o\astfun.py in _bytecode_decompile_lambda(co)
86 raise ValueError("unimpl: op in hasjrel")
87 elif op in haslocal:
---> 88 args.append(co.co_varnames[oparg]) # LOAD_FAST
89 elif op in hascompare:
90 args.append(cmp_op[oparg]) # COMPARE_OP
IndexError: tuple index out of range
答案 0 :(得分:1)
Python小册子中的代码已过时 - 参数名称已更改为与Pandas兼容,但不幸的是它没有向后兼容(这是一个错误,我打开了修复该here的票证)。现在的论点是skipna
。这是正确的方法:
df5 = h2o.H2OFrame.from_python(np.random.randn(100,4).tolist(), column_names=list("ABCD"))
df5.apply(lambda x: x.mean(skipna=False))