首页 文章

在python中读取csv文件时的整数

提问于
浏览
1

我正在尝试在python中读取一个csv文件,这样我就可以使用numpy.average找到其中一列中的值的平均值 . 我的脚本看起来像这样:

import os
import numpy
import csv

listing = os.listdir('/path/to/directory/of/files/i/need')
os.chdir('/path/to/directory/of/files/i/need')


for file in listing[1:]:    
    r = csv.reader(open(file, 'rU'))   
    for row in r:
        if len(row)<2:continue
        if float(row[2]) <=0.05:
            avg = numpy.average(float(row[2]))
    print avg

但我继续得到错误ValueError:float()的无效文字 . csv阅读器似乎是将数字作为字符串读取,并且不允许我将其转换为浮点数 . 有什么建议?

2 回答

  • 2

    根据评论判断,您的程序遇到了 Headers 问题 .

    这两个解决方案是在 for 循环之前使用 r.next() ,它会跳过一行,或者使用 DictReader 类 . DictReader 类的优点是您可以将每一行视为字典而不是元组,这在某些情况下可能会提高可读性,但您必须在构造函数中将 Headers 列表传递给它 .

  • 0

    更改:

    float(row[2])
    

    至:

    float(row[2].strip("'\""))
    

相关问题