【问题标题】:Merging two H20 dataframes Error: DistributedException 'Operation not allowed on string vector.'合并两个 H20 数据帧错误:DistributedException 'Operation not allowed on string vector。
【发布时间】:2019-08-11 20:47:23
【问题描述】:

我正在尝试在操作后合并两个数据帧。

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: 错误:找不到参数的对象“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'}

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

【问题讨论】:

    标签: python dataframe h2o


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢,df1 = data[data['L2Support'] == '0'].asfactor() df2 = data[data['L2Support'] == '1'].asfactor() df1["L2Support"].types df2["L2Support"].types 现在类型是枚举。但是合并只会留下一个空的数据框。 df1 和 df2 都包含正确的数据。 This H2OFrame is empty. 当我在df3 = df1.merge(df2) 之后打印df3
    猜你喜欢
    • 2021-12-04
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多