如何评估csv文件python中的行

时间:2017-11-06 23:31:11

标签: python csv

我有这段代码:

import csv

def main():
    file1 = open("filepath", "r")  
    reader = csv.reader(file1)
    i = next(reader)
    for row in file1:
        if i[3] < i[4]:
            print("troubling")

        elif i[3] < i[5]:
            print("concerning")
        else:
            print("None")

main()

到目前为止,这样做是将我的列分开,所以我可以将它们相互比较,但现在它正在比较整个列,而不是在每一行中,我如何让它做每行而不是比较两整列。现在,第4列的值是最大的,所以它打印出来的#34;麻烦&#34; 100次,我想要它打印&#34;麻烦&#34;仅当某行的第4列大于第3列的相同行时。提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

迭代读者对象更简单。请尝试以下方法:

import csv
def main():
    file1=open("filepath","r")
    reader=csv.reader(file1)
    for row in reader:
        if row[3]<row[4]:
            print ("troubling")
        #... and so on 

阅读器中的每一行都是一个列表,因此您可以使用适当的索引访问每一列。

答案 1 :(得分:2)

我认为错误是由于您使用变量&#39; i&#39;在循环内而不是行。 &#39; i&#39;的价值在循环中没有变化,因此每次都得到相同的结果。

for row in file1:
    if row[3] < row[4]:
        print("troubling")
    elif row[3] < row[5]:
        print("concerning")
    else:
        print("None")

我相信这可以解决你的问题。