如何根据python中的标头从csv文件中提取特定数据? 例如,假设csv文件包含以下信息:
Height,Weight,Age
6.0,78,25
我如何只检索python中的年龄?
答案 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] ) )