1. 程式人生 > 其它 >dataframe中string轉float問題

dataframe中string轉float問題

技術標籤:python機器學習資料分析tensorflow資料探勘

問題

報錯

ValueError: could not convert string to float

問題描述:在資料採集的過程中,由於各種原因導致一些錯誤發生,而使得存入txt或者csv的資料並不一定是“”,可能會出現空值或者類似’-0.6827.1’這樣的值。當用pandas讀取資料之後,呼叫data.info()顯示列的型別為object,列中單元格存的是string格式,如圖:
在這裡插入圖片描述

呼叫

data=pd.DataFrame(data,dtype=np.float)

把資料轉換成float型別,會出現報錯:

ValueError:
could not convert string to float: '-0.6827.1'

解決方案

最好的方式就是把這個值換成0或者把包含這個值的這一條資料刪除。但因為資料量巨大,依靠人眼是不可能找到’-0.6827.1’這個值在哪裡的,這裡給出一個解決方法:

#獲取所有列名
col = list(data.columns)

#分別對每一列呼叫apply方法,出錯的地方填入NaN
data[col] = data[col].apply(pd.to_numeric, errors='coerce')

#刪除含有NaN的行
data = data.dropna(axis=0,how='all'
)

結果如下:
在這裡插入圖片描述
參考:https://vimsky.com/article/3694.html