我有一个包含以下信息的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
答案 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