我尝试使用0.10
和1.00
之间的数字过滤第22列到Day.csv
。但是其中一些单元格是空白的,根本没有数字并导致错误:
ValueError: could not convert string to float:
以下是我的尝试:
reader = csv.reader(open("AllData.csv"), delimiter=',')
filteredDay = filter(lambda p:0.10 <= float(p[23]) <= 1.00, reader)
csv.writer(open(r"{}\Day.csv".format(queue),'w',newline =''),
delimiter=',').writerows(filteredDay)
答案 0 :(得分:3)
据推测,当相关单元格中没有值时,您需要使用过滤器返回False吗?尝试:
filteredDay = filter(lambda p: p[23] != "" and
0.10 <= float(p[23]) <= 1.00, reader)
答案 1 :(得分:2)
您可以使用三元条件返回空白False
:
filteredDay = filter(lambda p: 0.10 <= float(p[23]) <= 1.00 if p[23] != ''
else False, reader)
# ^^^^^^^^^^^^^^