2017-09-24 62 views
0

爲什麼在下面的代碼中出現此錯誤?我使用的是Spyder 3.1.4,我通過IPython控制檯運行它。TypeError:只能將長度爲1的數組轉換爲Python標量

list_stock = [] 
for key,value in data_dict.iteritems(): 
    list_stock.append(value["salary"]) 
sorted_list_stock = sorted(list_stock) 
scaler = MinMaxScaler() 
weights = np.array(sorted_list_stock) 
print weights 
rescaled_weights = scaler.fit_transform(float(weights)) 
print rescaled_weights 

編輯:完整的錯誤:

[ '477' '6615' '63744' ..., '男' '男' '男'] 回溯(最近通話最後一個):

runfile('C:/ Users/ptillotson/Documents/Python Scripts/ud120-projects-master/k_means/k_means_cluster.py',wdir ='C:/ Users/ptillotson /文件/ Python腳本/ ud120-projects-master/k_means')

文件「C:\ ProgramData \ Anaconda2 \ lib \ site-packag ES \ Spyder的\ utils的\網站\ sitecustomize.py 「線路880,在RUNFILE 的execfile(文件名,命名空間)

文件」 C:\ ProgramData \ Anaconda2 \ LIB \站點包\ Spyder的\ utils的\網站\ exec(編譯(scripttext,filename,'e​​xec'),glob,loc)

文件「C:/ Users/ptillotson/Documents/Python Scripts/ud120-projects-主/ k_means/k_means_cluster.py」,線路89,在 rescaled_weights = scaler.fit_transform(浮動(權重))

類型錯誤:只有長度爲1的陣列可以被轉換到Python標量

+0

直接使用權重。不要做'漂浮(重量)'。 –

+2

請更新您的答案,更詳細。解釋你得到的錯誤(在問題主體中)並解釋你期望的輸出。 – Soviut

+0

我已經添加了具有完整錯誤的編輯。我試圖找到$ 200,000.00的minmaxscaler值。有很多薪水。一些薪水未知。這些被替換爲「NaN」。 –

回答

0
list_stock.append(value["salary"]) 

您想要float(value["salary"])那裏。

此外,最好將它短語爲list_stock = [float(v['salary']) for v in data_dict.values()]

+0

當我這樣做時,我得到以下錯誤:ValueError:輸入包含NaN,無窮大或對於dtype('float64')太大的值 –

相關問題