5

Pythonのヘッダーに基づいて、csvファイルから特定のデータを抽出するにはどうすればよいですか? たとえば、csv ファイルに次の情報が含まれているとします。

Height,Weight,Age
6.0,78,25

Pythonで年齢だけを取得するにはどうすればよいですか?

4

2 に答える 2

6

私は推奨事項に二番目ですが、ここで使用する方が簡単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、最初の行を取得するためだけに使用しましたが、必要に応じて、行をループしたり、情報の列全体を抽出したりできます。

于 2013-04-16T17:19:07.077 に答える
2

従うべきプロセスは次のとおりです。最初の行を読み取り、探しているデータのその行のインデックス (場所) を見つけ、そのインデックスを使用して残りの行からデータを引き出します。

csv.readerPython は、すべての読み取りを行うための非常に便利なクラスを提供しているため、非常に単純です。

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] ) )

于 2013-04-16T17:15:00.357 に答える