我有两个h2o帧。两个h2o帧都有共同的site_id和timestamp列。我需要通过应用左联接来合并这些框架。 site_id列为int类型,而timestamp为时间类型。我确认当我运行describe()命令时。
df = h2o.H2OFrame.merge(df1, df2, by_x = ["site_id", "timestamp"], by_y=["site_id", "timestamp"])
df.head()
这将返回以下错误。
H2OResponseError:服务器错误java.lang.IllegalArgumentException:
错误:合并的列必须具有相同的类型,找到的列building_id 类型时间和数字请求:POST / 99 / Rapids 数据:{'ast':“((tmp = py_7_sid_aff9(合并py_4_sid_aff9 weather_train.hex False False [2 4] [0 1]'auto')))”,'session_id': '_sid_aff9'}
我正在使用的数据集可以从链接https://www.kaggle.com/c/ashrae-energy-prediction
中访问答案 0 :(得分:0)
我找到了一种解决方法。我首先在第一列中加入两个水框架。这将导致重复的列。之后,我只过滤t1和t2列中具有相同时间戳值的行。
train_meta_df.columns[2] = "t1" #rename timestamp column
weather_train_df.columns[1] = "t2"
df = h2o.H2OFrame.merge(df1, df2, by_x = ["site_id"], by_y=["site_id"])
df = df[df["t1"] == df["t2"]]
还是,我相信这是一个要修复的错误。