如何根据python中的头提取某些csv数据

时间:2013-04-16 17:08:10

标签: python csv

如何根据python中的标头从csv文件中提取特定数据? 例如,假设csv文件包含以下信息:

Height,Weight,Age
6.0,78,25

我如何只检索python中的年龄?

2 个答案:

答案 0 :(得分:6)

我推荐了csv,但我认为使用csv.DictReader会更简单:

(Python 2):

>>> import csv
>>> with open("hwa.csv", "rb") as fp:
...     reader = csv.DictReader(fp)
...     data = next(reader)
...     
>>> data
{'Age': '25', 'Weight': '78', 'Height': '6.0'}
>>> data["Age"]
'25'
>>> float(data["Age"])
25.0

这里我使用next来获取第一行,但如果您愿意,可以循环遍历行和/或提取完整的信息列。

答案 1 :(得分:2)

要遵循的过程是:在第一行中读取,找到您要查找的数据行的索引(位置),然后使用该索引从剩余行中提取数据。

Python提供了一个非常有用的csv.reader类来完成所有的阅读,所以它非常简单。

import csv

filename = 'yourfilenamehere'
column = 'Age'

data = [] # This will contain our data

# Create a csv reader object to iterate through the file
reader = csv.reader( open( filename, 'rU'), delimiter=',', dialect='excel')

hrow = reader.next() # Get the top row
idx = hrow.index(column) # Find the column of the data you're looking for

for row in reader: # Iterate the remaining rows
    data.append( row[idx] )

print data

请注意,值将以字符串形式显示。你可以通过包裹row[idx]来转换为int,例如data.append( int( row[idx] ) )