将字符串转换为浮点错误

所以我试图运行这段代码:


reader = list(csv.reader(open('mynew.csv', 'rb'), delimiter='\t'))

print reader[1]

number = [float(s) for s in reader[1]]

内部阅读器[1]我具有以下值:


'5/1/2013 21:39:00.230', '46.09', '24.76', '0.70', '0.53', '27.92',

我正在尝试将每个值存储到一个数组中,如下所示:


number[0] = 46.09

number[1] = 24.09

and so on.....

我的问题是:我将如何跳过日期和其后的数字,而只存储合法的花车。还是将内容存储在以逗号分隔的数组中?


当我尝试运行上面的代码时,它将引发错误:


ValueError: invalid literal for float(): 5/1/2013 21:39:00.230

谢谢!


慕少森
浏览 274回答 3
3回答

侃侃无极

只是跳过无法转换为浮点数的值:number = []for s in reader[1]:   try:       number.append(float(s))   except ValueError:       pass

SMILET

或者,您可以在字符串中搜索/并传递(如果存在),类似这样my_list_results = []my_list = ['5/1/2013 21:39:00.230', '46.09', '24.76', '0.70', '0.53', '27.92']for m in my_list:    if '/' not in m: #if we don't find /        my_list_results.append(m)print my_list_results

ABOUTYOU

如果它始终是第一个值而不是浮点数,则可以执行以下操作:reader = list(csv.reader(open('mynew.csv', 'rb'), delimiter='\t'))print reader[1]number = [float(s) for s in reader[1][1:]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python