Код, запускаемый в блокноте jupyter, работает иначе, чем в чистом Python.

В течение многих лет я использовал ноутбуки Jupyter для создания прототипов и тестирования кода, прежде чем помещать его в модули для импорта. Однако во время работы над этим проектом несколько раз один и тот же код работал по-разному в jupyter и в импортированном чистом файле python. Самый последний пример этого:

Я использую пользовательскую оболочку OneHotEncoder от scikit-learn для кодирования моего фрейма данных pandas в качестве шага предварительной обработки для моего конвейера машинного обучения. Вот функция в моем чистом файле Python

def fit(data):
   encoder = Encoder()
   prepared = encoder.prep(data)
   encoded_data = encoder.fit_transform(prepared)
   encoder.fit_onehot(encoded_data)

Когда я импортирую этот код и запускаю его, я получаю сообщение об ошибке

ValueError: не удалось преобразовать строку в число с плавающей точкой: 'AL'

Тем не менее, когда я запускаю этот код в блокноте jupyterlab, используя EXACT тот же самый фрейм данных

encoder = Encoder()
prepared = encoder.prep(data)
encoded_data = encoder.fit_transform(prepared)
encoder.fit_onehot(encoded_data)

все работает совершенно нормально.

Я не могу понять, что на самом деле не так, потому что я не могу повторить это поведение на своей игровой площадке (jupyter).

Дополнительная информация:

  • Серия бета-версий JupyterLab, версия 0.32.1
  • Python 3.6.1

0 ответов

Другие вопросы по тегам