gpt4 book ai didi

Python-h2o : How to specifiy column types correctly?

转载 作者:行者123 更新时间:2023-11-28 18:09:29 25 4
gpt4 key购买 nike

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

下面的可重现示例:

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

最佳答案

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

# 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'] 类型为实数(因为一旦对列进行 rbind,就会混合使用实数和整数)。我们可以使用 asnumeric()

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

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

my_h2o1.rbind(my_h2o2)

关于Python-h2o : How to specifiy column types correctly?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51602029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com