簡體   English   中英

如何解決此錯誤? “‘函數’對象沒有屬性‘StandardScaler’”

[英]How do I resolve this error? "'function' object has no attribute 'StandardScaler'"

def preprocessing(df:pd.DataFrame,scaler:str):
  standard_scaler= preprocessing.StandardScaler()
  not_uv=[]
  for column in df.columns:
    if column != 'uv': # uv is target
      not_uv.append(column)
  if scaler == 'standard':
    standard_df = pd.DataFrame(standard_scaler.fit_transfrom(df[not_uv]), columns = not_uv)
    standard_df = pd.concat([standard_df,df[['uv']]],axis=1)
    return standard_df
preprocessing(df_13,'standard')
AttributeError: 'function' object has no attribute 'StandardScaler'

我想制作預處理功能我的代碼有什么問題?

此代碼在用戶定義函數預處理和 sklearn 內置函數預處理之間產生沖突。 只需像這樣導入並制作實例。

from sklearn.preprocessing import StandardScaler

standard_scaler= StandardScaler()

或者

將您的函數名稱預處理更改為預處理或其他內容。 永遠不要聲明或創建內置關鍵字的實例。

函數def preprocessing(...):的名稱與preprocessing.StandardScaler()相同。 這意味着您正在覆蓋內存。 更改函數的名稱。 例如:

def new_preprocessing(df:pd.DataFrame,scaler:str):
  standard_scaler= preprocessing.StandardScaler()
  not_uv=[]
  for column in df.columns:
    if column != 'uv': # uv is target
      not_uv.append(column)
  if scaler == 'standard':
    standard_df = pd.DataFrame(standard_scaler.fit_transfrom(df[not_uv]), columns = not_uv)
    standard_df = pd.concat([standard_df,df[['uv']]],axis=1)
    return standard_df

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM