5

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

Height,Weight,Age
6.0,78,25

我怎么能只检索python中的年龄?

4

2 回答 2

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只是用来获取第一行,但如果您愿意,您可以遍历这些行和/或提取一整列信息。

于 2013-04-16T17:19:07.077 回答
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]您可以通过包装例如转换为 intdata.append( int( row[idx] ) )

于 2013-04-16T17:15:00.357 回答