Pythonでcsvデータを辞書形式で読み込む方法

Pythonでcsvデータを辞書形式で読み込む方法をご紹介します。

条件

  • Python 3.7.0

前提

以下のようなcsvファイルを読み込むものとします。

ファイル名:data.csv

data_datetime,temperature,humidity,location_id
2018-12-16 00:00:00,5,10,1
2018-12-16 01:00:00,1,50,1
2018-12-16 02:00:00,5,20,1
2018-12-16 03:00:00,10,70,1
2018-12-16 04:00:00,15,20,1
2018-12-16 00:00:00,25,80,2
2018-12-16 01:00:00,12,20,2
2018-12-16 02:00:00,5,50,2
2018-12-16 03:00:00,30,30,2
2018-12-16 04:00:00,15,70,2

辞書形式でのcsvデータ読み込み

  • ポイント
    • csv.DictReader()を使用します。

ソース

import csv

with open('data.csv', newline='') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        print(row)

実行結果

OrderedDict([('data_datetime', '2018-12-16 00:00:00'), ('temperature', '5'), ('humidity', '10'), ('location_id', '1')])
OrderedDict([('data_datetime', '2018-12-16 01:00:00'), ('temperature', '1'), ('humidity', '50'), ('location_id', '1')])
OrderedDict([('data_datetime', '2018-12-16 02:00:00'), ('temperature', '5'), ('humidity', '20'), ('location_id', '1')])
OrderedDict([('data_datetime', '2018-12-16 03:00:00'), ('temperature', '10'), ('humidity', '70'), ('location_id', '1')])
OrderedDict([('data_datetime', '2018-12-16 04:00:00'), ('temperature', '15'), ('humidity', '20'), ('location_id', '1')])
OrderedDict([('data_datetime', '2018-12-16 00:00:00'), ('temperature', '25'), ('humidity', '80'), ('location_id', '2')])
OrderedDict([('data_datetime', '2018-12-16 01:00:00'), ('temperature', '12'), ('humidity', '20'), ('location_id', '2')])
OrderedDict([('data_datetime', '2018-12-16 02:00:00'), ('temperature', '5'), ('humidity', '50'), ('location_id', '2')])
OrderedDict([('data_datetime', '2018-12-16 03:00:00'), ('temperature', '30'), ('humidity', '30'), ('location_id', '2')])
OrderedDict([('data_datetime', '2018-12-16 04:00:00'), ('temperature', '15'), ('humidity', '70'), ('location_id', '2')])

通常のcsvデータ読み込み

  • ポイント
    • csv.reader()を使用します。

ソース

import csv

with open('data.csv', newline='') as csvfile:
    reader = csv.reader(file)
    for row in reader:
        print(row)

実行結果

['data_datetime', 'temperature', 'humidity', 'location_id']
['2018-12-16 00:00:00', '5', '10', '1']
['2018-12-16 01:00:00', '1', '50', '1']
['2018-12-16 02:00:00', '5', '20', '1']
['2018-12-16 03:00:00', '10', '70', '1']
['2018-12-16 04:00:00', '15', '20', '1']
['2018-12-16 00:00:00', '25', '80', '2']
['2018-12-16 01:00:00', '12', '20', '2']
['2018-12-16 02:00:00', '5', '50', '2']
['2018-12-16 03:00:00', '30', '30', '2']
['2018-12-16 04:00:00', '15', '70', '2']

参考

Python公式:CSV ファイルの読み書き

https://docs.python.org/ja/3/library/csv.html

Pythonでcsvデータを辞書形式で読み込む方法” に対して1件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。