Вменение медианы для нулевых значений с помощью PySpark - PullRequest
1 голос
/ 07 января 2020

Мне удалось успешно сделать именно то, что я хочу для вменения нулевых значений с использованием среднего. Теперь я хочу сделать то же самое для медианы, вот тот же код, который я успешно использовал для среднего значения, только что измененного с помощью «медианы» вместо «среднего»:

from pyspark.ml.feature import Imputer
imputer = Imputer(inputCols=df2.columns, outputCols=["{}_imputed".format(c) for c in df2.columns]

Median_Imputer = imputer.setStrategy("median").fit(df2).transform(df2).show()
Median_Imputer

Так что выводится вывод ( не выдает ошибку), но вывод неправильный, он фактически не вычисляет медиану и вместо этого, кажется, выводит самое низкое значение в этом столбце в качестве замены NaN, как можно увидеть здесь:

Name   DateTime  Age   Name_imputed  DateTime_imputed  Age_imputed
NaN    15.0      3.5   0.5           15.0                3.5
15.0   45.0      18.0  15.0          45.0                18.0
0.5     3.5      NaN   0.5           3.5                 3.5

Как вы можете видеть, в столбце «Имя» должно быть указано 7,75 вместо 0,5, поскольку существует 2 значения, а медиана - это просто среднее их значение, а для возраста следует вменять 10,75 вместо 3,5 (самое низкое значение в столбце)

Почему это не работает? Это работало так, как нужно для подлости. Что можно сделать, чтобы это исправить?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...