#1 対象データ
東京都庁がCOVID-19の感染者数データを公開しています。
このCSVデータを処理したいと思います。
東京都が公表している感染者数
https://catalog.data.metro.tokyo.lg.jp/dataset/t000010d0000000068/resource/c2d997db-1450-43fa-8037-ebb11ec28d4c
(CSVファイル)
https://stopcovid19.metro.tokyo.lg.jp/data/130001_tokyo_covid19_patients.csv
#2 とりあえず
公式ドキュメントにCSVファイルの読み込み方が示されています。
https://docs.python.org/ja/3/library/csv.html
これを参考にして、1でダウンロードしたCSVファイルを読み込むプログラムを作成します。
import csv
with open('130001_tokyo_covid19_patients.csv') as csvfile:
reader = csv.reader(csvfile, delimiter=',', quotechar='"')
for row in reader:
print('■'.join(row))
これを実行すると次のエラーメッセージが表示
UnicodeDecodeError: 'cp932' codec can't decode byte 0xef in position 0: illegal multibyte sequence
たしかcp932てS-JISみたいな意味の言葉だったよな
ということで、CSVファイルの文字コードを調べるとUTF-8でした。
対処方法は、こちらの記事を参考にしました。
Python UTF-8のCSVファイル読み込み (UnicodeDecodeError対応)
openにencoding="utf_8"を指定するとよいとのこと。
#3 完成
完成したコードはこれ
import csv
with open('130001_tokyo_covid19_patients.csv', encoding="utf_8") as csvfile:
reader = csv.reader(csvfile, delimiter=',', quotechar='"')
for row in reader:
print('■'.join(row))
#4 その他
3の「row」はlistクラスでした。これから、1日ごとの集計をしたいのだけれど、
このままでは面倒そう。 pandan使った方が集計なんかは楽そうなので、pandasで作り直そうかな・・・