0

我创建了一个名为 dataFramePreprocessing.py 的 python 文件,其中包含一些已定义的函数,可在我的其他笔记本中使用。在我使用 sklearn.preprocessing 的功能之一中。这是引发错误的函数:

def scaleBinDF(df):
    from sklearn import preprocessing
    ...
    min_max_scaler = preprocessing.MinMaxScaler()
    x_scaled = min_max_scaler.fit_transform(x) 
    ...

当我在另一个文件中调用该函数时(所有其他函数都可以正常工作),如下所示:

import dataFramePreprocessing as pr
from sklearn import preprocessing
pr.scaleBinDf(bindf)

有时候是这样的

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-15-616840fc11d7> in <module>
      1 from sklearn import preprocessing
----> 2 pr.scaleBinDf(bindf)

~/Desktop/thesis/IDSProject/dataFramePreprocessing.py in scaleBinDf(df)
     77     from sklearn import preprocessing
     78     df2 = df.drop('Label', axis=1)
---> 79     colList = df2.columns
     80     x = df2.values
     81     min_max_scaler = preprocessing.MinMaxScaler()

NameError: name 'preprocessing' is not defined

有谁知道我该如何解决这个问题?

4

1 回答 1

0

只需在函数外写import语句如下:

from sklearn import preprocessing
def scaleBinDF(df):

    ...
    min_max_scaler = preprocessing.MinMaxScaler()
    x_scaled = min_max_scaler.fit_transform(x) 
    ...

现在像这样调用这个函数

import dataFramePreprocessing as pr
pr.scaleBinDf(bindf)
于 2021-06-16T17:40:52.330 回答