列表變陣列函式array()對資料型別產生的影響
阿新 • • 發佈:2018-12-19
在進行一個運算時發現list型別不能直接進行矩陣運算,需要用array()函式轉換為陣列型別,然後進行運算。但是發現結果有問題,本來是一列float,求和之後變成了一個大長串的數字,沒有得到想要的結果。
hs300stock_data=pd.DataFrame(np.array(hs300stock[1:5]).T,index=np.array(hs300stock[0]).T,columns=(“weight”,“industry_sw”,“indexcode_sw”,“returnbyweight”)) bench_return_by_industry=hs300stock_data.groupby(“industry_sw”).sum() 後來發現是在對list型別轉換為陣列時,會將所有的資料都轉換為同一個型別,然後再組成陣列,所以裡面的float型別都轉換成了string,這樣結果就錯了。這時需要用astype()函式對資料型別進行轉換。如下 hs300stock_data[[“weight”, “returnbyweight”]]=hs300stock_data[[“weight”,“returnbyweight”]].astype(float) 這樣在進行運算就會得到正確的結果了。