如何根据 python 中的标头从 csv 文件中提取特定数据?例如,假设 csv 文件包含以下信息:
Height,Weight,Age
6.0,78,25
我怎么能只检索python中的年龄?
我支持该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
只是用来获取第一行,但如果您愿意,您可以遍历这些行和/或提取一整列信息。
要遵循的过程是:读取第一行,在您要查找的数据的该行上找到索引(位置),然后使用该索引将数据从其余行中提取出来。
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] ) )