我想只读取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
答案 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))