0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

pythonでCSVファイルを読み込む(ダウンロード&CSVファイルのパース)

Last updated at Posted at 2020-05-06

#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ファイルを読み込むプログラムを作成します。

python
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 完成
完成したコードはこれ

python
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で作り直そうかな・・・

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?