Quantcast
Channel: pandas - よちよちpython
Viewing all articles
Browse latest Browse all 30

厚労省のコロナ陽性者数データが変わったのでメモ

$
0
0

厚生労働省オープンデータというページに置いてあったコロナのPCR検査の陽性者数csvファイルが、別のファイルに置き換わったのでメモしておきます。





  • 変更内容
    • 日ごとの全国合計陽性者数 → 日ごとの全国・都道府県別の確認済み陽性者数



変更後のファイル内容確認

ついでに中身を見ておきます。ファイルは手動でダウンロード済み。

import pandas as pd

# 新規に置き換わったコロナ陽性者数ファイル
fname = "newly_confirmed_cases_daily.csv"# csv 読み込み
df = pd.read_csv(fname)

df
DatePrefectureNewly confirmed cases
02020/1/26ALL1
12020/1/26Hokkaido0
22020/1/26Aomori0
32020/1/26Iwate0
42020/1/26Miyagi0
............
267792021/8/5Kumamoto127
267802021/8/5Oita31
267812021/8/5Miyazaki36
267822021/8/5Kagoshima51
267832021/8/5Okinawa648

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"]
DatePrefectureNewly confirmed cases
02020/1/26ALL1
482020/1/27ALL0
962020/1/28ALL3
1442020/1/29ALL1
1922020/1/30ALL3
............
265442021/8/1ALL10162
265922021/8/2ALL8325
266402021/8/3ALL12062
266882021/8/4ALL14204
267362021/8/5ALL15249

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 inenumerate(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()
    
    

f:id:chayarokurokuro:20210806214707j:plain

これらの波は検査数の増減によって現れているはず。なぜなら外国はこのような形ではないから。「第○波」には中身がない。しかし感染者が急に増えてるのは確かだ。ワクチンのアレじゃないの?


Viewing all articles
Browse latest Browse all 30

Trending Articles