Вы не должны заменять на 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)