所以我试图运行这段代码: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.09number[1] = 24.09and so on.....我的问题是:我将如何跳过日期和其后的数字,而只存储合法的花车。还是将内容存储在以逗号分隔的数组中?当我尝试运行上面的代码时,它将引发错误:ValueError: invalid literal for float(): 5/1/2013 21:39:00.230谢谢!
3 回答

侃侃无极
TA贡献2051条经验 获得超10个赞
只是跳过无法转换为浮点数的值:
number = []
for s in reader[1]:
try:
number.append(float(s))
except ValueError:
pass

SMILET
TA贡献1796条经验 获得超4个赞
或者,您可以在字符串中搜索/并传递(如果存在),类似这样
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
TA贡献1812条经验 获得超5个赞
如果它始终是第一个值而不是浮点数,则可以执行以下操作:
reader = list(csv.reader(open('mynew.csv', 'rb'), delimiter='\t'))
print reader[1]
number = [float(s) for s in reader[1][1:]]
添加回答
举报
0/150
提交
取消