Pythonのヘッダーに基づいて、csvファイルから特定のデータを抽出するにはどうすればよいですか? たとえば、csv ファイルに次の情報が含まれているとします。
Height,Weight,Age
6.0,78,25
Pythonで年齢だけを取得するにはどうすればよいですか?
私は推奨事項に二番目ですが、ここで使用する方が簡単csv
だと思います:csv.DictReader
(パイソン 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
、最初の行を取得するためだけに使用しましたが、必要に応じて、行をループしたり、情報の列全体を抽出したりできます。
従うべきプロセスは次のとおりです。最初の行を読み取り、探しているデータのその行のインデックス (場所) を見つけ、そのインデックスを使用して残りの行からデータを引き出します。
csv.reader
Python は、すべての読み取りを行うための非常に便利なクラスを提供しているため、非常に単純です。
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]
egをラップすることでintに変換できますdata.append( int( row[idx] ) )