Python:找出CSV文件中的列位置

时间:2017-09-24 15:51:12

标签: python csv

我有一个包含以下信息的csv文件:

team;name;city;country;points
VCF;Valencia;Valencia;Spain;98
FCB;Barcelona;Barcelona;Spain;54
MU;Manchester;Manchester;England;87

我想知道如何返回“城市”信息出现的列号,并将其保存在变量“X”中。在上面的例子中,它将是“2”,因为它出现在第三个位置。

这是我到目前为止的代码:

import csv

file = 'spanishleague2012'
csv_file = csv.reader(open(file))
next(csv_file)

x = [column== city]

print x

结果应为:2

5 个答案:

答案 0 :(得分:0)

您可以打开文件进行阅读并查看第一个标题:

f = [i.strip('\n').split(";") for i in open('filename.csv')]
print(f[0].index("city"))

答案 1 :(得分:0)

您可以在标题行上使用enumerate(),检查列名称:

import csv

with open(filename) as f:
    reader = csv.reader(f, delimiter=";")        
    for idx, col in enumerate(next(reader)):
        if col == "city":
            print idx
            break

如果目标是访问所有城市值,则可以使用csv.DictReader

with open(filename) as f:
    reader = csv.DictReader(f, delimiter=";")
    for row in reader:
        print row["city"]

答案 2 :(得分:0)

而不是跳过标题,请将其读入。然后查找名为"city"的列的索引:

csv_file = csv.reader(open(file))
header = next(csv_file)
city_idx = header.index("city")

答案 3 :(得分:0)

import csv
with open("C:/pathTofilecsv", "rb") as file:
   data= csv.reader(file,delimiter=';')
   cols = data.next()

在这种情况下,您将拥有数组col中所有列的列表

 print cols 
>>>['team', 'name', 'city', 'country' , 'points']

现在,您可以将city列的索引显示为

X = cols.index("city")

答案 4 :(得分:0)

这将读取您的文件并返回2

import csv

with open('spanishleague2012','rb') as f:
    csv_file = csv.reader(f,delimiter=';')
    header = next(csv_file)
    print header.index('city')

但是使用DictReader,您不需要知道列号:

import csv

with open('spanishleague2012','rb') as f:
    csv_file = csv.DictReader(f,delimiter=';')
    for row in csv_file:
        print row['city']

输出:

Valencia
Barcelona
Manchester