Debug01:ValueError: could not convert string to float


pandas ValueError: could not convert string to float: (dataframe string 轉 float)(object 轉 float)

問題:pandas 導入 csv文件之后,有部分列是空的,列的類型為object格式,列中單元格存的是string格式

需求:把空的列(object)轉化成浮點類型(float)

方法:

# 找到列名,轉化為列表
col = list(data.columns)

# 把所有列的類型都轉化為數值型,出錯的地方填入NaN,再把NaN的地方補0
data[col] = data[col].apply(pd.to_numeric, errors='coerce').fillna(0.0)
# 至此,object的列(列中存儲的是string類型)轉成了float

# 最后一步,把所有列都轉化成float類型,done!
data = pd.DataFrame(data, dtype='float')

轉化成float后,可以實現數據的篩選了!全部數據3900萬減至3600萬!

 注意:以上方法簡單粗暴,將所有的列全部轉化為float類型,會導致日期、車輛號碼的丟失。

建議修改成如下,僅對某些列進行轉化float類型。缺點是對大數據耗時較長(15min)

data['lng'] = data['lng'].apply(pd.to_numeric, errors='coerce').fillna(0.0)
data['lat'] = data['lat'].apply(pd.to_numeric, errors='coerce').fillna(0.0)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM