how to fix ValueError :could not convert string to float: in Python
how to fix ValueError :could not convert string to float: in Python
我有一个 python 脚本,它从 CSV 文件中读取并检查记录是否符合条件。
- 如果是系统显示结果
- 如果没有,系统会根据错误引发异常。
csv 文件包含一个具有 浮点值 的文件,但其中一些记录可能没有任何值,因此将为空。
问题是如果单元格为空,系统会显示此 ValueError:
could not convert string to float:
而不是我写的异常。
raise Exception("this Record has empty value")
- 行[0]==>日期类型日期
- row[10]==>风速类型float
- 行[11]==>雾型布尔值
代码:
import csv
mydelimeter = csv.excel()
mydelimeter.delimiter=";"
myfile = open("C:/Users/test/Documents/R_projects/homework/rdu-weather-history.csv")
# read the first line in the opened file ==> Header
myfile.readline()
myreader=csv.reader(myfile,mydelimeter)
mywind,mydate=[],[]
minTemp, maxTemp = [],[]
fastwindspeed, fog=[],[]
'''
create a variable that handle values of the 3 fields ==> Date - fastest5secwindspeed - fog
and display the result where
fog ==> Yes and highest speed more than 10.
'''
for row in myreader:
try:
if row[11] =="Yes":
if float(row[10]) < 10.0:
raise Exception( 'the wind speed is below 10 mph in ' + row[0] )
if row[10] in (None, ""):
raise Exception("this Record has empty value")
print(row[0],row[10],row[11])
except Exception as e:
print("{}".format(e))
myfile.close()
您可以更改加注的顺序,同时您应该处理该列中 non-float 的可能性:
import csv
mydelimeter = csv.excel()
mydelimeter.delimiter=";"
myfile = open("C:/Users/test/Documents/R_projects/homework/rdu-weather-history.csv")
# read the first line in the opened file ==> Header
myfile.readline()
myreader=csv.reader(myfile,mydelimeter)
mywind,mydate=[],[]
minTemp, maxTemp = [],[]
fastwindspeed, fog=[],[]
'''
create a variable that handle values of the 3 fields ==> Date - fastest5secwindspeed - fog
and display the result where
fog ==> Yes and highest speed more than 10.
'''
for row in myreader:
try:
if row[11] =="Yes":
if row[10] in (None, ""):
raise Exception("this Record has empty value")
try:
if float(row[10]) < 10.0:
raise Exception( 'the wind speed is below 10 mph in ' + row[0] )
except ValueError:
raise Exception('This Column expected to have a float has a non-float instead")
print(row[0],row[10],row[11])
except Exception as e:
print("{}".format(e))
myfile.close()
我在做项目的时候也遇到过这个问题。我只是喜欢下面:-
if(len(row[10]) > 0):
wind_speed = flot(row[10])
我有一个 python 脚本,它从 CSV 文件中读取并检查记录是否符合条件。
- 如果是系统显示结果
- 如果没有,系统会根据错误引发异常。
csv 文件包含一个具有 浮点值 的文件,但其中一些记录可能没有任何值,因此将为空。
问题是如果单元格为空,系统会显示此 ValueError:
could not convert string to float:
而不是我写的异常。
raise Exception("this Record has empty value")
- 行[0]==>日期类型日期
- row[10]==>风速类型float
- 行[11]==>雾型布尔值
代码:
import csv
mydelimeter = csv.excel()
mydelimeter.delimiter=";"
myfile = open("C:/Users/test/Documents/R_projects/homework/rdu-weather-history.csv")
# read the first line in the opened file ==> Header
myfile.readline()
myreader=csv.reader(myfile,mydelimeter)
mywind,mydate=[],[]
minTemp, maxTemp = [],[]
fastwindspeed, fog=[],[]
'''
create a variable that handle values of the 3 fields ==> Date - fastest5secwindspeed - fog
and display the result where
fog ==> Yes and highest speed more than 10.
'''
for row in myreader:
try:
if row[11] =="Yes":
if float(row[10]) < 10.0:
raise Exception( 'the wind speed is below 10 mph in ' + row[0] )
if row[10] in (None, ""):
raise Exception("this Record has empty value")
print(row[0],row[10],row[11])
except Exception as e:
print("{}".format(e))
myfile.close()
您可以更改加注的顺序,同时您应该处理该列中 non-float 的可能性:
import csv
mydelimeter = csv.excel()
mydelimeter.delimiter=";"
myfile = open("C:/Users/test/Documents/R_projects/homework/rdu-weather-history.csv")
# read the first line in the opened file ==> Header
myfile.readline()
myreader=csv.reader(myfile,mydelimeter)
mywind,mydate=[],[]
minTemp, maxTemp = [],[]
fastwindspeed, fog=[],[]
'''
create a variable that handle values of the 3 fields ==> Date - fastest5secwindspeed - fog
and display the result where
fog ==> Yes and highest speed more than 10.
'''
for row in myreader:
try:
if row[11] =="Yes":
if row[10] in (None, ""):
raise Exception("this Record has empty value")
try:
if float(row[10]) < 10.0:
raise Exception( 'the wind speed is below 10 mph in ' + row[0] )
except ValueError:
raise Exception('This Column expected to have a float has a non-float instead")
print(row[0],row[10],row[11])
except Exception as e:
print("{}".format(e))
myfile.close()
我在做项目的时候也遇到过这个问题。我只是喜欢下面:-
if(len(row[10]) > 0):
wind_speed = flot(row[10])