Python - 从csv文件中读取特定列

时间:2017-04-22 06:02:11

标签: python csv

我想只读取csv文件的第一列。我尝试了以下代码,但没有得到可用解决方案的结果。

data = open('data.csv')
reader = csv.reader(data)
interestingrows = [i[1] for i in reader]'

我得到的错误是:

Traceback (most recent call last):
    File "G:/Setups/Python/pnn-3.py", line 12, in <module>
         interestingrows = [i[1] for i in reader]
    File "G:/Setups/Python/pnn-3.py", line 12, in <listcomp>
         interestingrows = [i[1] for i in reader]
IndexError: list index out of range

2 个答案:

答案 0 :(得分:2)

您还可以使用DictReader按标题

访问列

例如:如果您有一个名为“stackoverflow.csv”的文件,其中包含标题(“Oopsy”,“Daisy”,“Rough”和“Tumble”) 您可以使用以下脚本访问第一列:

import csv
with open(stackoverflow.csv) as csvFile:
#Works if the file is in the same folder, 
# Otherwise include the full path
    reader = csv.DictReader(csvFile)
    for row in reader:
        print(row["Oopsy"])

答案 1 :(得分:0)

如果您想要可索引可迭代的第一项,则应使用0作为索引。但在这种情况下,您可以简单地使用zip()来获取列的迭代器,并且由于csv.reader返回迭代器,您可以使用next()来获取第一列。

with open('data.csv') as data:
    reader = csv.reader(data)
    first_column  = next(zip(*reader))