在Python中将字符串转换为float

时间:2013-04-23 04:39:26

标签: python string floating-point

我有一个csv文件,我试图绘制一些内容,并需要将字符串转换为浮点数。我的问题如下:

当我运行下面的代码时,

with open('meteors.csv', 'rU') as csvfile:
    reader=csv.reader(csvfile)
    for row in reader:    
        print row[6]

我得到了这个输出:

58.58333

当我改为尝试

print type(row[6])

我得到了这个输出:

<type 'str'>

但是当我尝试

 print float(row[6])

我收到此错误:

ValueError: could not convert string to float: coordinate_1

任何人都知道发生了什么事吗?

2 个答案:

答案 0 :(得分:4)

您很可能会看到第一行,其中包含CSV文件中的列标题,而coordinate_1是标题。

您可以跳过第一行:

with open('meteors.csv', 'rU') as csvfile:
    reader=csv.reader(csvfile)
    reader.next() # skips the first (header) row
    for row in reader:    
        print row[6]

或者,使用DictReader,如下所示:

with open('meteors.csv', 'rU') as csvfile:
    reader=csv.DictReader(csvfile)
    for row in reader:    
        print row['coordinate_1']

答案 1 :(得分:2)

您的CSV文件可能有一个标题,列出了每列的名称。您无法将这些名称转换为float s,因此这就是您的错误来源。

您必须首先使用标题:

with open('meteors.csv', 'rU') as csvfile:
    reader = csv.reader(csvfile)
    header = next(reader)

    for row in reader:
        print float(row[6])