首页 > 解决方案 > 如何处理“无法将字符串转换为浮点数”错误

问题描述

这个问题在这里被问了好几次,我检查了其中的大部分,但不知道如何处理它。我读取了一个 CSV 文件,并尝试将其值转换为浮点数,如下所示:

testdataframe = pd.read_csv(r'H:\myCSVfile.csv')
testdataset = testdataframe.values
testdataset = testdataset.astype('float32')

我收到此错误:ValueError:无法将字符串转换为浮点数:'2020-08-05 22:45:00'

这是测试数据框:

array([['2020-08-05 22:45:00', 5.670524],   
   ['2020-08-05 23:00:00', 5.6840434],  
   ['2020-08-05 23:15:00', 5.6911097],  
   ['2020-08-05 23:30:00', 5.6869917],  
   ['2020-08-05 23:45:00', 5.6786237],  
   ['2020-08-06 00:00:00', 5.6710806]], dtype=object

在此先感谢您的帮助。

标签: pythonpandascsv

解决方案


正如@John Gordon正确提到的那样,它是一个日期/时间字符串您应该应用于astype(float)数字列。但是,如果您仍想继续应用相同的内容,这里有忽略“错误”的逻辑

df=pd.DataFrame({"A":[1.2,'1.2','a'],"B":['2020-10-2 10:00:00','2020-10-2 11:00:00','2020-10-2 12:00:00']})
df.astype(float, errors='ignore')

推荐阅读