Когда я регистрирую преобразование столбца pandas, я получаю NaN, я должен заменить их на 0? - PullRequest
0 голосов
/ 04 февраля 2020

Не могу найти похожий вопрос. Но у меня есть df с некоторыми перекосами столбцов. Затем я планирую войти преобразовать эти столбцы, а затем стандартизировать. Однако, когда я преобразовываю журнал, то получаю NaN, должен ли я заменить их на 0; s?

log_train[skew_cols]=np.log2(featuresdf[skew_cols]

ошибка, которую я получаю:

RuntimeWarning: invalid value encountered in log2
  This is separate from the ipykernel package so we can avoid doing imports until

не уверен, что я делаю неправильно

1 Ответ

1 голос
/ 04 февраля 2020

Вы не должны заменять на 0, потому что np.log (1) равен 0. Так что и 1, и 0 будут 0 в ваших данных журнала.

Вместо этого просто +1 ваш данные до журнала. Следовательно, log2 (1) становится 0, log2 (2) (который был 1) по-прежнему равен 1, тогда log2 (3) (который был 2) теперь равен 1,58)

Таким образом, код будет:

log_train[skew_cols]=np.log2(featuresdf[skew_cols]+1)

Другой вариант - использовать другие методы масштабирования, которые могут обрабатывать 0, например квадрат root (np.sqrt)

...