qimi_and_softkitty
qimi_and_softkitty
2018-02-02 08:39
采纳率: 100%
浏览 15.1k

Python读取csv文件后str转换为float

-------------------------------------------code---------------------------------
#coding:utf-8
import csv
import xlwt
#新建excel文件
myexcel = xlwt.Workbook()
#新建sheet页
mysheet = myexcel.add_sheet("testsheet")
csvfile = open("data.csv","r")

#读取文件信息
reader = csv.reader(csvfile)
l = 0
#通过循环获取单行信息
for line in reader:
r = 0
#通过双重循环获取单个单元信息
for i in line:
#通过双重循环写入excel表格
x=0
#将第六行第二列的str转换为float
if l > 6:
if r >= 1:
#x=float(i)
x = float(i)

#print(i)
if x > 160:
print(l,r)
mysheet.write(l,r,"high")
else:
mysheet.write(l,r,i)
r=r+1
l=l+1
#最后保存到excel
myexcel.save("myexcel.xls")
-------------------------------------------code---------------------------------
如上,x=float(i)处报错ValueError:could not convert string to float: '-'
此处数据类似 16.02
如何解决。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • zt3032
    zt3032 2018-02-04 09:24
    已采纳

    a="-1"
    float(a)
    -1.0
    a="-"
    float(a)
    Traceback (most recent call last):
    File "", line 1, in
    ValueError: could not convert string to float: -

    点赞 评论
  • keepanything
    keepanything 2018-02-02 09:21

    csv不标准,遇到非浮点数的字符串了,先把不标准的过滤掉

    点赞 评论
  • caozhy
    点赞 评论
  • zt3032
    zt3032 2018-02-04 09:24

    建议你把i打出来看下,这块是不是取得数据有问题,如果真的是16.02的话,不会报这个错的。

    点赞 评论

相关推荐