合并两个H20数据帧错误:DistributedException'不允许在字符串向量上进行操作。'

时间:2019-03-21 02:32:25

标签: python dataframe h2o

我正在尝试在一次手术后合并两个数据帧。

import pandas as pd
import h2o
from h2o.automl import H2OAutoML
h2o.init()
import pandas as pd

import numpy as np



support = "splvl.csv"
data = h2o.import_file(support)

df1 = data[data['X'] == 0]
df2 = data[data['X'] == 1]

df1.impute("A", method = "mean", by = ["B", "C"])
df1.impute("Q", method = "mode", by = ["B", "C"])

df2.impute("A", method = "mean", by = ["B", "C"])
df2.impute("Q", method = "mode", by = ["B", "C"])

df1["X"].table()
df2["X"].table()

df3 = df2.merge(df1)

h2o.export_file(df3, path = "merged.csv", force=True, parts=1)

执行导出到CSV命令时,出现以下错误

  

H2OServerError:HTTP 500服务器错误:   服务器错误water.util.DistributedException:     错误:来自/127.0.0.1:54321的DistributedException:'不允许对字符串向量进行操作。'     要求:无

df3["X"].table()
  

服务器错误water.exceptions.H2OKeyNotFoundArgumentException:     错误:找不到参数“ key”的对象“ py_13_sid_95bb”     请求:GET / 3 / Frames / py_13_sid_95bb       参数:{'row_count':'10','row_offset':'0','column_count':'-1','full_column_count':'-1','column_offset':'0'}

当我尝试在合并的数据框中打印值计数时出现此错误

1 个答案:

答案 0 :(得分:1)

第一个问题很可能是您的"X"是字符串类型,您可以通过运行df1["X"].types进行检查。您可以将其转换为因子列,然后通过执行table()来使用df1["X"]=df1["X"].asfactor()

看到第二个错误的原因可能是因为运行d3时创建df3 = df2.merge(df1)失败。

我建议您验证列数据类型,修复那些需要转换为因子的数据,然后再次尝试合并。