Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 合并两个H20数据帧错误:DistributedException';不允许对字符串向量进行操作。';_Python_Dataframe_H2o - Fatal编程技术网

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

Python 合并两个H20数据帧错误:DistributedException';不允许对字符串向量进行操作。';,python,dataframe,h2o,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

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

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:“不允许对字符串向量执行操作。” 请求:无

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


当我尝试在合并数据框中打印值计数时出现此错误。第一个问题可能是您的
“X”
类型为string,您可以通过运行
df1[“X”]来执行检查。类型
。您可以将其转换为一个factor列,然后通过执行
df1[“X”]=df1[“X”].asfactor()
使用
table()

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


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

第一个问题可能是您的
“X”
类型为string,您可以通过运行
df1[“X”].types进行检查。您可以将其转换为一个factor列,然后通过执行
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
类型现在是enum。但是合并只会留下一个空的数据帧。df1和df2中都有正确的数据<代码>此帧为空
当我在
df3=df1.merge(df2)
之后打印
df3时,谢谢,
df1=data[data['L2Support']=='0'].asfactor()df2=data[data['L2Support']=='1'].asfactor()df1['L2Support'].types df2['L2Support'].types
类型现在是enum。但是合并只会留下一个空的数据帧。df1和df2中都有正确的数据<代码>此帧为空当我在
df3=df1.merge(df2)
df3["X"].table()