首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python - h2o:如何正确指定列类型?

Python - h2o:如何正确指定列类型?
EN

Stack Overflow用户
提问于 2018-07-31 04:45:28
回答 1查看 4.4K关注 0票数 4

我正在尝试将pandas数据帧导入到h2o框架中,并指定所需的列类型。问题是我最终尝试对两个datasets执行.rbind(),但有时根据某些列的值,h2o会强制它们为real或int,然后它们无法执行.rbind(),因为列类型不同。我希望确保我可以获得两个具有相同列类型的不同数据集,这样就会发生这些失败。

下面是可重现的例子:

代码语言:javascript
复制
import pandas as pd
import h2o

my_df1 = pd.DataFrame({'a':[1,1,0,0,1],
                       'b':[1,0,.5,.2,0]})

my_df2 = pd.DataFrame({'a':[.5,.8,0,0,1],
                       'b':[1,0,.5,.2,0]})

h2o.init()
my_h2o1 = h2o.H2OFrame(my_df1)
my_h2o2 = h2o.H2OFrame(my_df2)

my_h2o1.rbind(my_h2o2)  ### This fails

### try to manually specify the column names and types
col_names = [k for k in my_h2o1.types.keys()]
col_types = [v for v in my_h2o1.types.values()]

my_h2o3 = h2o.H2OFrame(my_df2,column_names=col_names, column_types=col_types)

my_h2o1.types.values() == my_h2o3.types.values()

my_h2o1.rbind(my_h2o3)  ### This fails still
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-31 06:37:24

在将列类型转换为H2OFrame后,尝试转换列类型

代码语言:javascript
复制
# check types
In [38]: my_h2o1.types
Out[38]: {'a': 'int', 'b': 'real'}

In [39]: my_h2o2.types
Out[39]: {'a': 'real', 'b': 'real'}

因为我们需要my_h2o1['a']为real类型(因为一旦重新绑定列,您将拥有real和integers的混合)。我们可以使用asnumeric()

my_h2o1['a'] = my_h2o1['a'].asnumeric()

一旦有了匹配的类型,我们就可以使用rbind方法

my_h2o1.rbind(my_h2o2)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51602029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档