厚労省のコロナ陽性者数データが変わったのでメモ
厚生労働省のオープンデータというページに置いてあったコロナのPCR検査の陽性者数のcsvファイルが、別のファイルに置き換わったのでメモしておきます。
- 変更前
- ファイル名 :
pcr_positive_daily.csv
- 2021/07/27で更新ストップ
- ファイル名 :
- 変更後
- ファイル名 :
newly_confirmed_cases_daily.csv
- URL : https://covid19.mhlw.go.jp/public/opendata/newly_confirmed_cases_daily.csv
- ファイル名テキスト :
新規陽性者数の推移(日別)
- ファイル名 :
- 変更内容
- 日ごとの全国合計陽性者数 → 日ごとの全国・都道府県別の確認済み陽性者数
変更後のファイル内容確認
ついでに中身を見ておきます。ファイルは手動でダウンロード済み。
import pandas as pd # 新規に置き換わったコロナ陽性者数ファイル fname = "newly_confirmed_cases_daily.csv" # csv 読み込み df = pd.read_csv(fname) df
Date | Prefecture | Newly confirmed cases | |
---|---|---|---|
0 | 2020/1/26 | ALL | 1 |
1 | 2020/1/26 | Hokkaido | 0 |
2 | 2020/1/26 | Aomori | 0 |
3 | 2020/1/26 | Iwate | 0 |
4 | 2020/1/26 | Miyagi | 0 |
... | ... | ... | ... |
26779 | 2021/8/5 | Kumamoto | 127 |
26780 | 2021/8/5 | Oita | 31 |
26781 | 2021/8/5 | Miyazaki | 36 |
26782 | 2021/8/5 | Kagoshima | 51 |
26783 | 2021/8/5 | Okinawa | 648 |
26784 rows × 3 columns
カラムは、日付
、全国・都道府県名
、新規感染確認済み陽性数
、かな。
「確認済み」とわざわざ付けてあり、これまでの単なる陽性者数(positive)と意味が違ってくる。
データフレームの概要確認
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 26784 entries, 0 to 26783
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Date 26784 non-null object
1 Prefecture 26784 non-null object
2 Newly confirmed cases 26784 non-null int64
dtypes: int64(1), object(2)
memory usage: 627.9+ KB
ALL(全国合計?)だけを抽出
# Prefecture列のALLのみを抽出 df[df["Prefecture"] == "ALL"]
Date | Prefecture | Newly confirmed cases | |
---|---|---|---|
0 | 2020/1/26 | ALL | 1 |
48 | 2020/1/27 | ALL | 0 |
96 | 2020/1/28 | ALL | 3 |
144 | 2020/1/29 | ALL | 1 |
192 | 2020/1/30 | ALL | 3 |
... | ... | ... | ... |
26544 | 2021/8/1 | ALL | 10162 |
26592 | 2021/8/2 | ALL | 8325 |
26640 | 2021/8/3 | ALL | 12062 |
26688 | 2021/8/4 | ALL | 14204 |
26736 | 2021/8/5 | ALL | 15249 |
558 rows × 3 columns
558行ある。2020/1月から全国各地で一斉に検査を始めたわけはないので(知らんけど)、都道府県別でデータ量が違うかも? 確認する。
# 都道府県名列のユニーク抽出 lst = df["Prefecture"].unique() print('都道府県名列のユニーク\n', lst) print('-'*20) print('都道府県名列のユニーク数\n', len(lst)) print('-'*20) # 都道府県別の行数確認 print('都道府県別の行数') for i in df["Prefecture"].unique(): print(i, df[df["Prefecture"] == i].shape[0])
都道府県名列のユニーク
['ALL' 'Hokkaido' 'Aomori' 'Iwate' 'Miyagi' 'Akita' 'Yamagata' 'Fukushima'
'Ibaraki' 'Tochigi' 'Gunma' 'Saitama' 'Chiba' 'Tokyo' 'Kanagawa'
'Niigata' 'Toyama' 'Ishikawa' 'Fukui' 'Yamanashi' 'Nagano' 'Gifu'
'Shizuoka' 'Aichi' 'Mie' 'Shiga' 'Kyoto' 'Osaka' 'Hyogo' 'Nara'
'Wakayama' 'Tottori' 'Shimane' 'Okayama' 'Hiroshima' 'Yamaguchi'
'Tokushima' 'Kagawa' 'Ehime' 'Kochi' 'Fukuoka' 'Saga' 'Nagasaki'
'Kumamoto' 'Oita' 'Miyazaki' 'Kagoshima' 'Okinawa']
--------------------
都道府県名列のユニーク数
48
--------------------
都道府県別の行数
ALL 558
Hokkaido 558
Aomori 558
Iwate 558
Miyagi 558
Akita 558
Yamagata 558
Fukushima 558
Ibaraki 558
Tochigi 558
Gunma 558
Saitama 558
Chiba 558
Tokyo 558
Kanagawa 558
Niigata 558
Toyama 558
Ishikawa 558
Fukui 558
Yamanashi 558
Nagano 558
Gifu 558
Shizuoka 558
Aichi 558
Mie 558
Shiga 558
Kyoto 558
Osaka 558
Hyogo 558
Nara 558
Wakayama 558
Tottori 558
Shimane 558
Okayama 558
Hiroshima 558
Yamaguchi 558
Tokushima 558
Kagawa 558
Ehime 558
Kochi 558
Fukuoka 558
Saga 558
Nagasaki 558
Kumamoto 558
Oita 558
Miyazaki 558
Kagoshima 558
Okinawa 558
全国合計と全ての都道府県で558行。未検査日はゼロを入れてあるのかな。
都道府県別の推移グラフ
時系列グラフをまとめて画像ファイルにする。
import matplotlib.pyplot as plt import japanize_matplotlib # 日付列をdatetime型に変換 df["Date"] = pd.to_datetime(df["Date"]) # グラフ化 plt.figure(figsize=(30,35)) # 都道府県ごと for i,v in enumerate(lst): data = df[df["Prefecture"] == v] x= data["Date"] y = data["Newly confirmed cases"] plt.subplot(12, 4, i+1) plt.plot(x,y) plt.title(f"{v} 新規感染者数") plt.gcf().autofmt_xdate() plt.grid() # 保存 plt.savefig('Newly_confirmed_cases.jpg') plt.tight_layout()
これらの波は検査数の増減によって現れているはず。なぜなら外国はこのような形ではないから。「第○波」には中身がない。しかし感染者が急に増えてるのは確かだ。ワクチンのアレじゃないの?