Python 3 - CSV ファイルを読み込む

目次

CSV ファイルを読み込む

まずは、csv モジュールの reader 関数で reader オブジェクトを生成します。

その後、for 文に reader オブジェクト を指定することで、CSV ファイルを読み込むことができます。

Example

source code

import csv

fname = "data.csv"
with open(fname, "r", newline="", encoding="shift_jis") as reader:
    csv_reader = csv.reader(reader)
    for row in csv_reader:
        print(row)

TSV ファイルを読み込む

csv モジュールの reader 関数で delimiter="\t" を指定します。

Example

source code

import csv

fname = "data.tsv"
with open(fname, "r", newline="", encoding="shift_jis") as reader:
    csv_reader = csv.reader(reader, delimiter="\t")
    for row in csv_reader:
        print(row)

ヘッダをスキップする

next 関数でヘッダ行を読み込むことで、スキップすることができます。

実行例は、気象庁の「過去の気象データ・ダウンロード」からダウンロードした CSV ファイルを読み込んだ時の結果です。 同様な結果を表示したい場合は、気象庁のデータをダウンロードするときに、地点は「岐阜」県の「美濃」市、項目は「日平均気温」、期間は「2019年1月7日」から「2019年1月13日」を指定してください。

Example

source code

import csv

fname = "data.csv"
with open(fname, "r", newline="", encoding="shift_jis") as reader:
    csv_reader = csv.reader(reader)

    for i in range(5):
        header = next(csv_reader)
        print("[SKIP]", header)
    print("========")

    for row in csv_reader:
        print(row)

result

[SKIP] ['ダウンロードした時刻:2019/02/12 22:05:39']
[SKIP] []
[SKIP] ['', '美濃', '美濃', '美濃']
[SKIP] ['年月日', '平均気温(℃)', '平均気温(℃)', '平均気温(℃)']
[SKIP] ['', '', '品質情報', '均質番号']
========
['2019/1/7', '3.7', '8', '1']
['2019/1/8', '5.0', '8', '1']
['2019/1/9', '2.2', '8', '1']
['2019/1/10', '0.4', '8', '1']
['2019/1/11', '4.6', '8', '1']
['2019/1/12', '3.8', '8', '1']
['2019/1/13', '3.9', '8', '1']

出典

参考リンク