我正在为电子表格对csv数据进行排序,并对不同行中的值求和。使用groupby之后,float()不起作用。
我尝试使用.strip()
并将值打印到stdout
,但它们对我来说都是有效的。
csv_rows
是2D字符串列表
# use to store data
totals = {}
# group rows by column name
for key, group in groupby(csv_rows, lambda row: row[1]):
# grab all the floats from another column
values = [float(line[3]) for line in group]
# do the deed
total = sum(values)
# record new data
totals[key] = total
我尝试过:
values = []
for line in group:
if not line[3].isdigit():
print line[3]
else:
values.append(float(line[3]))
该脚本会打印一堆看起来有效的浮点数:
...
0.378
0.468
0.232
...
以ValueError: cannot convert string to float: OUT_RANGE
失败
我希望所有输入都是有效的,可强制转换的字符串。