Объединение двух кадров данных H20 Ошибка: DistributedException «Операция не разрешена для строкового вектора» - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь объединить два фрейма данных после операции.

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: HTTP500 Ошибка сервера: ошибка сервера water.util.DistributedException: ошибка: DistributedException из /127.0.0.1:54321: «Операция недопустима для строкового вектора.»Запрос: Нет

df3["X"].table()

Ошибка сервера water.exceptions.H2OKeyNotFoundArgumentException: Ошибка: объект 'py_13_sid_95bb' не найден для аргумента: ключ Запрос: GET / 3 / Frames / py_13_sid_95bb params: {'row_count': '10', 'row_offset': '0', 'column_count': '-1', 'full_column_count': '-1', 'column_offset': '0'}

эта ошибка, когда я пытаюсь напечатать счетчик значений в объединенном фрейме данных

1 Ответ

1 голос
/ 21 марта 2019

Первая проблема, вероятно, в том, что ваш "X" имеет тип string, вы можете выполнить проверку, запустив df1["X"].types.Вы можете преобразовать это в столбец фактора, который затем позволит вам использовать table(), выполнив df1["X"]=df1["X"].asfactor().

. Причина, по которой вы видите вторую ошибку, вероятно, заключается в том, что d3 не удалось создать, когдавы запустили df3 = df2.merge(df1).

Я бы порекомендовал проверить типы данных столбцов, исправить те из них, которые необходимо преобразовать в факторы, а затем повторить попытку объединения.

...