如何将H2OFrame中的列转换为Python列表?

问题描述 投票:0回答:3

我已经阅读了 H2O.ai 的 PythonBooklet.pdf 和 python API 文档,但仍然找不到一个干净的方法来做到这一点。我知道我可以执行以下任一操作:

  • 将 H2OFrame 转换为 Spark DataFrame 并执行
    flatMap
    +
    collect
    collect
    + 列表理解。
  • 使用H2O的
    get_frame_data
    ,它给我一串由
    \n
    分隔的标题和数据;然后将其转换为列表(在我的例子中是数字列表)。

有更好的方法吗?谢谢你。

apache-spark apache-spark-sql h2o
3个回答
9
投票

您可以尝试这样的操作:通过调用 .as_data_frame() 将 H2OFrame 作为 pandas 数据帧引入 python,然后在感兴趣的列上调用 .tolist()。

带虹膜的独立示例

import h2o
h2o.init()
df = h2o.import_file("iris_wheader.csv")
pd = df.as_data_frame()
pd['sepal_len'].tolist()

2
投票

您可以 (1) 将 H2o 帧转换为 pandas 数据帧并 (2) 将 pandas 数据帧转换为以下列表:

pd=h2o.as_list(h2oFrame) 
l=pd["column"].tolist()

0
投票

H2O as_list 方法返回列表列表以及列名称,因此您需要在提取列后压平列表,如下所示

column_as_list_of_lists = h2o.as_list(h2oFrame[:,'<col_name>'],use_pandas=False)  
flat_list = [item for sublist in column_as_list_of_lists[1:len(column_as_list_of_lists)-1] for item in sublist]
© www.soinside.com 2019 - 2024. All rights reserved.