为了账号安全,请及时绑定邮箱和手机立即绑定

将字符串转换为浮点错误

将字符串转换为浮点错误

慕少森 2021-03-11 13:12:26
所以我试图运行这段代码: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


查看完整回答
反对 回复 2021-03-24
?
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


查看完整回答
反对 回复 2021-03-24
?
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:]]


查看完整回答
反对 回复 2021-03-24
  • 3 回答
  • 0 关注
  • 234 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号