csvファイルを読むとき、最初の行(または複数)は、データに含めたくないヘッダーです。csv.readerヘッダーを正しく処理する方法
私はちょうど読者を宣言する前にnext
を使用し、ヘッダからのデータを必要としない場合(複数の行をヘッダに使用されている場合、私は次の複数回呼び出すことができます):たまに
with open('myfile.csv', 'rb') as f:
next(f) #skip first row
reader = csv.reader(f)
for row in reader:
#process my data
しかし、私は自分のデータにヘッダーを含めたくないが、依然としてその値が必要です。その場合、csv.reader
をリストに変換し、ヘッダーを別々に処理します。
with open('myfile.csv', 'rb') as f:
reader = list(csv.reader(f))
my_header = reader.pop(0) #remove header
for row in reader:
#process my data
これはうまくいきました。しかし、私はそれがcsv.reader
を使用する "ベストプラクティス"の方法であるかどうかは分かりませんし、調べる価値のある他の方法があります。
非常に強力で多才な読者である['pandas.read_csv()'](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html)を見てください。 –
これは、反論されたコメントと回答のレシピです。しかし、 'reader'を' list'に変換する必要はありません。 'my_header = next(reader)'は必要に応じてヘッダ行を取得します。 – Abdou