在jupyter笔记本中运行的代码的行为与在纯python中运行的代码不同

时间:2018-08-13 14:44:37

标签: python scikit-learn jupyter-notebook jupyter-lab

多年来,我一直在使用jupyter笔记本进行原型制作和测试,然后再将其放入要导入的模块中。但是,在进行此项目时,有多次相同的代码在jupyter和导入的纯python文件中的行为不同。最新的示例是:

我正在使用scikit-learn的OneHotEncoder的自定义包装器将熊猫数据帧编码为机器学习管道的预处理步骤。这是我的纯python文件中的函数

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

导入此代码并运行它时,我得到错误消息

  

ValueError:无法将字符串转换为浮点数:“ AL”

但是,当我使用完全相同的数据框在jupyterlab笔记本中运行此代码时

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

一切正常。

我无法弄清楚到底是什么问题,因为我无法在测试场(jupyter)中复制此行为。

其他信息:

  • JupyterLab Beta版本系列0.32.1
  • Python 3.6.1

0 个答案:

没有答案