dataframe中string轉float問題
阿新 • • 發佈:2020-12-09
技術標籤: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