新型コロナのデータを見る
新型コロナのデータ 2021-07-03まで
どんな具合か久しぶりに見てみる。書き散らかしメモ。
目次
- 新型コロナのデータ 2021-07-03まで
- データファイル
- no.0 cases_total.csv
- no.1 current_situation.csv
- no.2 death_total.csv
- no.2.2 death_daily (death_total.csvを日毎に変換)
- no.3 demography.csv
- no.4 nhk_news_covid19_prefectures_daily_data.csv
- no.5 pcr_case_daily.csv
- no.6 pcr_positive_daily.csv
- no.7 pcr_tested_daily.csv
- no.8 recovery_total
- no.9 severe_daily
データファイル
# 新型コロナのデータファイルURLリスト URLs = [ "http://www.ipss.go.jp/projects/j/Choju/covid19/data/japan_deaths.xlsx", # 年代別データ(国立社会保障・人口問題研究所) "https://toyokeizai.net/sp/visual/tko/covid19/csv/demography.csv", # 年代別国内発生動向 (東洋経済オンライン) "https://www.mhlw.go.jp/content/pcr_positive_daily.csv", # 陽性者数 (厚生労働省 オープンデータ) "https://www.mhlw.go.jp/content/pcr_tested_daily.csv", # PCR検査実施人数 (厚生労働省 オープンデータ) "https://www.mhlw.go.jp/content/cases_total.csv", # 入院治療等を要する者の数(厚生労働省 オープンデータ) "https://www.mhlw.go.jp/content/recovery_total.csv", # 退院又は療養解除となった者の数(厚生労働省 オープンデータ) "https://www.mhlw.go.jp/content/death_total.csv", # 死亡者数(厚生労働省 オープンデータ) "https://www.mhlw.go.jp/content/pcr_case_daily.csv", # PCR検査の実施件数(厚生労働省 オープンデータ) "https://www.mhlw.go.jp/content/current_situation.csv", # 発生状況(厚生労働省 オープンデータ) "https://www.mhlw.go.jp/content/severe_daily.csv", # 重症者 (厚生労働省 オープンデータ) "https://www3.nhk.or.jp/n-data/opendata/coronavirus/nhk_news_covid19_prefectures_daily_data.csv", # 都道府県別感染者・死亡者(NHK) ]
リストの1番上のExcelファイル以外を今回使います。10個
# 使用するデータファイル from glob import glob files = glob('*.csv') files
['cases_total.csv',
'current_situation.csv',
'death_total.csv',
'demography.csv',
'nhk_news_covid19_prefectures_daily_data.csv',
'pcr_case_daily.csv',
'pcr_positive_daily.csv',
'pcr_tested_daily.csv',
'recovery_total.csv',
'severe_daily.csv']
import numpy as np import pandas as pd import matplotlib.pyplot as plt import japanize_matplotlib %matplotlib inline
no.0 cases_total.csv
df_cases_total = pd.read_csv(files[0])
df_cases_total
日付\t | 入院治療を要する者 | |
---|---|---|
0 | 2020/2/4 | 15 |
1 | 2020/2/5 | 16 |
2 | 2020/2/6 | 12 |
3 | 2020/2/7 | 12 |
4 | 2020/2/8 | 7 |
... | ... | ... |
511 | 2021/6/29 | 16159 |
512 | 2021/6/30 | 16272 |
513 | 2021/7/1 | 16249 |
514 | 2021/7/2 | 16192 |
515 | 2021/7/3 | 16350 |
516 rows × 2 columns
# cases_total.csv 折れ線グラフ # インポート x軸日付ラベルの重なり解消 import matplotlib.dates as mdates # 時系列データに変換 df_cases_total_copy = df_cases_total.copy() # データフレームをコピー df_cases_total_copy['日付\t'] = pd.to_datetime(df_cases_total['日付\t']) # 日付列をdatetime型に変換 df_cases_total_copy = df_cases_total_copy.set_index('日付\t') # 日付列をインデックスにする # 折れ線グラフ plt.figure(facecolor='w') plt.plot(df_cases_total_copy) plt.title('新型コロナ入院治療を要する者の数(2020-02-04~2021-07-03)') plt.gcf().autofmt_xdate() # 日付ラベル重なり解消 plt.grid() plt.savefig('00_cases_total折れ線グラフ.jpg') plt.show()
no.1 current_situation.csv
df_current_situation = pd.read_csv(files[1])
df_current_situation
Unnamed: 0 | PCR検査\n実施人数 ※3 | 陽性者数 | 入院治療等を要する者の数 | うち重症者の数 | 退院又は療養解除と\nなった者の数 | 死亡者数 | 確認中 ※4 | |
---|---|---|---|---|---|---|---|---|
0 | 国内事例 ※1,※5\n(チャーター便帰国\n者を除く) | 15,857,880 \n(+38,122) | 802,203\n(+1,864)※2 | 16,350\n(+158) | 496\n(-5)※6 | 770,414\n(+1,692) | 14,837\n(+18) | 1,342\n(+8) |
1 | 空港,海港検疫 | 779,294\n(+3,879)※7 | 3,158\n(+14) | 102\n(+10) | 0 | 3,051\n(+4) | 5 | 0 |
2 | チャーター便\n帰国者事例 | 829 | 15 | 0 | 0 | 15 | 0 | 0 |
3 | 合計 | 16,638,003\n(+42,001) | 805,376\n(+1,878)※2 | 16,452\n(+168) | 496\n(-5)※6 | 773,480\n(+1,696) | 14,842\n(+18) | 1,342\n(+8) |
no.2 death_total.csv
df_death_total = pd.read_csv(files[2])
df_death_total
日付 | 死亡者数 | |
---|---|---|
0 | 2020/2/14 | 1 |
1 | 2020/2/15 | 1 |
2 | 2020/2/16 | 1 |
3 | 2020/2/17 | 1 |
4 | 2020/2/18 | 1 |
... | ... | ... |
501 | 2021/6/29 | 14735 |
502 | 2021/6/30 | 14776 |
503 | 2021/7/1 | 14797 |
504 | 2021/7/2 | 14819 |
505 | 2021/7/3 | 14837 |
506 rows × 2 columns
# death_total.csv 折れ線グラフ # インポート x軸日付ラベルの重なり解消 import matplotlib.dates as mdates # 時系列データに変換 df_death_total_copy = df_death_total.copy() # データフレームをコピー df_death_total_copy['日付'] = pd.to_datetime(df_death_total['日付']) # 日付列をdatetime型に変換 df_death_total_copy = df_death_total_copy.set_index('日付') # 日付列をインデックスにする # 折れ線グラフ plt.figure(facecolor='w') plt.plot(df_death_total_copy) plt.title('新型コロナ累計死亡者数(2020-02-14~2021-07-03)') plt.gcf().autofmt_xdate() # 日付ラベル重なり解消 plt.grid() plt.savefig('02_death_total折れ線グラフ.jpg') plt.show()
no.2.2 death_daily (death_total.csvを日毎に変換)
# death_totalの累計データを日毎に変換 narr = df_death_total.iloc[:, 1].to_numpy() death_daily = np.append(1, np.diff(narr)) # データフレーム作成 df_death_daily = pd.DataFrame(df_death_total.iloc[:, 0]) df_death_daily['死亡者数(日毎)'] = death_daily df_death_daily
日付 | 死亡者数(日毎) | |
---|---|---|
0 | 2020/2/14 | 1 |
1 | 2020/2/15 | 0 |
2 | 2020/2/16 | 0 |
3 | 2020/2/17 | 0 |
4 | 2020/2/18 | 0 |
... | ... | ... |
501 | 2021/6/29 | 35 |
502 | 2021/6/30 | 41 |
503 | 2021/7/1 | 21 |
504 | 2021/7/2 | 22 |
505 | 2021/7/3 | 18 |
506 rows × 2 columns
# death_total.csvをdailyに変換したデータの折れ線グラフ # インポート x軸日付ラベルの重なり解消 import matplotlib.dates as mdates # 時系列データに変換 df_death_daily_copy = df_death_daily.copy() # データフレームをコピー df_death_daily_copy['日付'] = pd.to_datetime(df_death_daily['日付']) # 日付列をdatetime型に変換 df_death_daily_copy = df_death_daily_copy.set_index('日付') # 日付列をインデックスにする # 折れ線グラフ plt.figure(facecolor='w') plt.plot(df_death_daily_copy) plt.title('新型コロナ日ごと死亡者数(2020-02-14~2021-07-03)') plt.gcf().autofmt_xdate() # 日付ラベル重なり解消 plt.grid() plt.savefig('02_2_death_daily折れ線グラフ.jpg') plt.show()
※右の方に1本飛び出して250人を超えてる部分があるのは、兵庫県神戸市が「カウントし損なっていたデータがあった」とかいう理由で2~3か月分の人数130人ほどを計上した為に不自然になっている。
no.3 demography.csv
df_demography = pd.read_csv(files[3])
df_demography
year | month | date | age_group | tested_positive | hospitalized | serious | death | |
---|---|---|---|---|---|---|---|---|
0 | 2021 | 6 | 30 | 10歳未満 | 26904 | 1988 | 0 | 0 |
1 | 2021 | 6 | 30 | 10代 | 59816 | 4261 | 0 | 0 |
2 | 2021 | 6 | 30 | 20代 | 176122 | 11154 | 0 | 8 |
3 | 2021 | 6 | 30 | 30代 | 118071 | 7507 | 0 | 27 |
4 | 2021 | 6 | 30 | 40代 | 115534 | 8337 | 29 | 106 |
5 | 2021 | 6 | 30 | 50代 | 103576 | 7795 | 60 | 301 |
6 | 2021 | 6 | 30 | 60代 | 66730 | 5677 | 99 | 939 |
7 | 2021 | 6 | 30 | 70代 | 58365 | 5673 | 139 | 2976 |
8 | 2021 | 6 | 30 | 80代以上 | 57535 | 5277 | 79 | 8094 |
9 | 2021 | 6 | 30 | 不明 | 10358 | 1094 | 7 | 259 |
# demography.csv 年代別棒グラフ作成 fig = plt.figure(figsize=(15, 20), facecolor='w') data = [df_demography['tested_positive'], df_demography['hospitalized'], df_demography['serious'], df_demography['death']] colors = ['orange', 'green', 'red', 'black'] # 色分け用 titles = ['陽性者数', '要入院者数', '重症者数', '死亡者数'] # タイトル用 for i, (d, color, title) in enumerate(zip(data,colors, titles)): ax = fig.add_subplot(4,1,i+1) ax.bar(df_demography['age_group'], d, color=color) plt.title(f'年代別{title}グラフ', size=12) plt.xticks(size=12) plt.ylabel(f'{title}', size=15) plt.grid() plt.savefig('demography_csv_bar_graph.jpg') plt.show()
これには年代別の検査数データを含んでいないので若年層は感染しやすいと勘違いするが、若年層の検査数は高齢者の2~3倍多い。
一日あたり累計の検査数で、たとえば20代の15万人に対し、80代は5万人とかそんな具合。しかし重症者数・死亡者数は高齢者に偏る。
某ワクチン企業の報告書にも「60代以上の重症化率は高い」とある。そんなことコロナに限ったことではないだろうけど。
no.4 nhk_news_covid19_prefectures_daily_data.csv
df_nhk_data = pd.read_csv(files[4])
df_nhk_data
日付 | 都道府県コード | 都道府県名 | 各地の感染者数_1日ごとの発表数 | 各地の感染者数_累計 | 各地の死者数_1日ごとの発表数 | 各地の死者数_累計 | |
---|---|---|---|---|---|---|---|
0 | 2020/1/16 | 1 | 北海道 | 0 | 0 | 0 | 0 |
1 | 2020/1/17 | 1 | 北海道 | 0 | 0 | 0 | 0 |
2 | 2020/1/18 | 1 | 北海道 | 0 | 0 | 0 | 0 |
3 | 2020/1/19 | 1 | 北海道 | 0 | 0 | 0 | 0 |
4 | 2020/1/20 | 1 | 北海道 | 0 | 0 | 0 | 0 |
... | ... | ... | ... | ... | ... | ... | ... |
25187 | 2021/6/30 | 47 | 沖縄県 | 67 | 20783 | 2 | 183 |
25188 | 2021/7/1 | 47 | 沖縄県 | 63 | 20846 | 4 | 187 |
25189 | 2021/7/2 | 47 | 沖縄県 | 61 | 20907 | 4 | 191 |
25190 | 2021/7/3 | 47 | 沖縄県 | 76 | 20983 | 0 | 191 |
25191 | 2021/7/4 | 47 | 沖縄県 | 34 | 21017 | 0 | 191 |
25192 rows × 7 columns
# 都道府県ごとの各項目の合計値データフレーム 、各地の死者数_1日ごとの発表数に基づき降順で並び替え df_nhk = df_nhk_data.groupby('都道府県名').sum().sort_values('各地の死者数_1日ごとの発表数', ascending=False) # 不要列削除 df_nhk = df_nhk.drop(['都道府県コード', '各地の感染者数_累計', '各地の死者数_累計'], axis=1) # 感染者数累計ごとの死亡者累計を算出 列追加 df_nhk['死亡累計/感染累計'] = (df_nhk['各地の死者数_1日ごとの発表数'] / df_nhk['各地の感染者数_1日ごとの発表数']).map('{:.2%}'.format) df_nhk
各地の感染者数_1日ごとの発表数 | 各地の死者数_1日ごとの発表数 | 死亡累計/感染累計 | |
---|---|---|---|
都道府県名 | |||
大阪府 | 103850 | 2680 | 2.58% |
東京都 | 176501 | 2239 | 1.27% |
北海道 | 41466 | 1405 | 3.39% |
兵庫県 | 41032 | 1308 | 3.19% |
愛知県 | 51295 | 971 | 1.89% |
神奈川県 | 68311 | 952 | 1.39% |
埼玉県 | 46941 | 832 | 1.77% |
千葉県 | 40874 | 710 | 1.74% |
福岡県 | 35639 | 522 | 1.46% |
京都府 | 16661 | 246 | 1.48% |
沖縄県 | 21017 | 191 | 0.91% |
岐阜県 | 9282 | 187 | 2.01% |
広島県 | 11525 | 175 | 1.52% |
茨城県 | 10651 | 165 | 1.55% |
福島県 | 4962 | 161 | 3.24% |
群馬県 | 8051 | 152 | 1.89% |
静岡県 | 9401 | 151 | 1.61% |
奈良県 | 8246 | 131 | 1.59% |
岡山県 | 7596 | 126 | 1.66% |
熊本県 | 6491 | 118 | 1.82% |
石川県 | 3954 | 115 | 2.91% |
三重県 | 5278 | 112 | 2.12% |
長野県 | 5039 | 91 | 1.81% |
宮城県 | 9187 | 90 | 0.98% |
滋賀県 | 5571 | 90 | 1.62% |
栃木県 | 7120 | 82 | 1.15% |
山口県 | 3159 | 80 | 2.53% |
愛媛県 | 2755 | 75 | 2.72% |
長崎県 | 3216 | 69 | 2.15% |
大分県 | 3494 | 64 | 1.83% |
徳島県 | 1657 | 63 | 3.80% |
新潟県 | 3423 | 52 | 1.52% |
和歌山県 | 2693 | 49 | 1.82% |
岩手県 | 1713 | 47 | 2.74% |
山形県 | 2028 | 47 | 2.32% |
鹿児島県 | 3698 | 38 | 1.03% |
富山県 | 2042 | 38 | 1.86% |
福井県 | 1327 | 35 | 2.64% |
青森県 | 2520 | 31 | 1.23% |
香川県 | 2099 | 31 | 1.48% |
宮崎県 | 3094 | 27 | 0.87% |
高知県 | 1851 | 26 | 1.40% |
佐賀県 | 2565 | 24 | 0.94% |
山梨県 | 2124 | 21 | 0.99% |
秋田県 | 907 | 20 | 2.21% |
鳥取県 | 491 | 2 | 0.41% |
島根県 | 553 | 1 | 0.18% |
データの期間は未確認。たぶん他のデータと同じく1年以上の累計。なぜリセットしないのかね。
これらの数字は各都道府県の人口や検査数に依存する。検査しなければ全て0。新型コロナ騒動以前のように。
コロナ感染者の99%以上は発症すらしない(ワクチン製薬会社2社共の発表によると)。これを集団免疫と言わずに何というのだろうか。
検査を増やせば致死率なども下がる。しかし99%以上の人には関係ないので検査するだけ費用の無駄とも言える。
no.5 pcr_case_daily.csv
df_pcr_case_daily = pd.read_csv(files[5])
df_pcr_case_daily
日付 | 国立感染症研究所 | 検疫所 | 地方衛生研究所・保健所 | 民間検査会社 | 大学等 | 医療機関 | |
---|---|---|---|---|---|---|---|
0 | 2020/2/18 | 472 | 75 | 398 | 0.0 | 79.0 | NaN |
1 | 2020/2/19 | 15 | 68 | 609 | 0.0 | 0.0 | NaN |
2 | 2020/2/20 | 20 | 15 | 758 | 0.0 | 0.0 | NaN |
3 | 2020/2/21 | 261 | 188 | 902 | 132.0 | 108.0 | NaN |
4 | 2020/2/22 | 341 | 127 | 677 | 2.0 | 19.0 | NaN |
... | ... | ... | ... | ... | ... | ... | ... |
496 | 2021/6/28 | 0 | 0 | 2002 | 38218.0 | 5277.0 | 24129.0 |
497 | 2021/6/29 | 0 | 0 | 2532 | 21037.0 | 4293.0 | 19854.0 |
498 | 2021/6/30 | 0 | 0 | 2416 | 32046.0 | 3854.0 | 17310.0 |
499 | 2021/7/1 | 0 | 2 | 2363 | 28021.0 | 3018.0 | 13821.0 |
500 | 2021/7/2 | 0 | 0 | 1208 | NaN | NaN | NaN |
501 rows × 7 columns
no.6 pcr_positive_daily.csv
df_pcr_positive_daily = pd.read_csv(files[6])
df_pcr_positive_daily
日付 | PCR 検査陽性者数(単日) | |
---|---|---|
0 | 2020/1/16 | 1 |
1 | 2020/1/17 | 0 |
2 | 2020/1/18 | 0 |
3 | 2020/1/19 | 0 |
4 | 2020/1/20 | 0 |
... | ... | ... |
530 | 2021/6/29 | 1375 |
531 | 2021/6/30 | 1811 |
532 | 2021/7/1 | 1741 |
533 | 2021/7/2 | 1774 |
534 | 2021/7/3 | 1864 |
535 rows × 2 columns
# pcr_positive_dailyの折れ線グラフ # 時系列データに変換 df_pcr_positive_daily_copy = df_pcr_positive_daily.copy() # データフレームをコピー df_pcr_positive_daily_copy['日付'] = pd.to_datetime(df_pcr_positive_daily['日付']) # 日付列をdatetime型に変換 df_pcr_positive_daily_copy = df_pcr_positive_daily_copy.set_index('日付') # 日付列をインデックスにする # 折れ線グラフ plt.figure(facecolor='w') plt.plot(df_pcr_positive_daily_copy) plt.title('新型コロナ日ごと陽性者数(2020-01-16~2021-07-03)') plt.gcf().autofmt_xdate() # 日付ラベル重なり解消 plt.grid() plt.savefig('06_pcr_positive_daily折れ線グラフ.jpg') plt.show()
検査数を100倍にすれば陽性者数・感染者数も100倍になるだろう。しかし重症者は100倍にはならない。死亡者も100倍にはならない。そんなことになれば、年間の全死亡者数をコロナが占めてしまう。どこにもそのようなデータは無い。2020年の超過死亡者は減ってすらいる。
no.7 pcr_tested_daily.csv
df_pcr_tested_daily = pd.read_csv(files[7])
df_pcr_tested_daily
日付 | PCR 検査実施件数(単日) | |
---|---|---|
0 | 2020/2/5 | 4 |
1 | 2020/2/6 | 19 |
2 | 2020/2/7 | 9 |
3 | 2020/2/8 | 4 |
4 | 2020/2/9 | 10 |
... | ... | ... |
507 | 2021/6/29 | 61916 |
508 | 2021/6/30 | 67576 |
509 | 2021/7/1 | 77063 |
510 | 2021/7/2 | 67044 |
511 | 2021/7/3 | 38122 |
512 rows × 2 columns
# pcr_tested_dailyの折れ線グラフ # 時系列データに変換 df_pcr_tested_daily_copy = df_pcr_tested_daily.copy() # データフレームをコピー df_pcr_tested_daily_copy['日付'] = pd.to_datetime(df_pcr_tested_daily['日付']) # 日付列をdatetime型に変換 df_pcr_tested_daily_copy = df_pcr_tested_daily_copy.set_index('日付') # 日付列をインデックスにする # 折れ線グラフ plt.figure(facecolor='w') plt.plot(df_pcr_tested_daily_copy, label='検査実施件数') plt.plot(df_pcr_tested_daily_copy.rolling(window=7, min_periods=1).mean(), label='7日移動平均') # 7日移動平均 plt.title('新型コロナ日ごと検査実施件数(2020-02-05~2021-07-03)') plt.gcf().autofmt_xdate() # 日付ラベル重なり解消 plt.grid() plt.legend() plt.savefig('07_pcr_tested_daily折れ線グラフ.jpg') plt.show()
no.7_2 陽性者数/検査実施件数 で陽性率を出す
# 結合 df_positive_tested_rate = df_pcr_tested_daily_copy.join(df_pcr_positive_daily_copy, how='inner') # 陽性率列を追加 df_positive_tested_rate['陽性率'] = (df_positive_tested_rate['PCR 検査陽性者数(単日)'] / df_positive_tested_rate['PCR 検査実施件数(単日)']) print('陽性率平均値:', df_positive_tested_rate['陽性率'].mean()) print('陽性率中央値:', df_positive_tested_rate['陽性率'].median()) print('陽性率最大値:', df_positive_tested_rate['陽性率'].max()) df_positive_tested_rate.describe()
陽性率平均値: 0.10498579148938529
陽性率中央値: 0.048645076066993725
陽性率最大値: 10.017543859649123
PCR 検査実施件数(単日) | PCR 検査陽性者数(単日) | 陽性率 | |
---|---|---|---|
count | 512.000000 | 512.000000 | 512.000000 |
mean | 30920.425781 | 1557.212891 | 0.104986 |
std | 30844.725439 | 1730.172948 | 0.462973 |
min | 4.000000 | 0.000000 | 0.000000 |
25% | 4901.750000 | 265.750000 | 0.025345 |
50% | 21065.500000 | 915.000000 | 0.048645 |
75% | 54593.250000 | 2371.500000 | 0.090876 |
max | 176379.000000 | 7844.000000 | 10.017544 |
入力ミスか集計ミスかわからないが、陽性率の最大値maxが10を超えてる。そのせいでか陽性率平均値が高い。
このままグラフ化すると外れ値が一本飛び出していたので、それを以下で除外する。
# 外れ値を除外 4分位数範囲基準 def outlier(df) : for i in range(len(df.columns)): col = df.iloc[:, i] #四分位数範囲 Q1 = col.describe()['25%'] Q3 = col.describe()['75%'] IQR = Q3 - Q1 # 外れ値基準 outlier_min = Q1 - (IQR)*1.5 outlier_max = Q3 + (IQR)*1.5 # 外れ値除外 col[col < outlier_min] = None col[col > outlier_max] = None return df df_rate = outlier(df_positive_tested_rate) # 外れ値除去 df_rate = df_rate.dropna(how='any') # Nanがある行を除去 print('陽性率平均値', df_rate['陽性率'].mean()) print('陽性率中央値', df_rate['陽性率'].median()) print('陽性率最大値', df_rate['陽性率'].max()) df_rate
陽性率平均値 0.041858348606778575
陽性率中央値 0.033985348538630014
陽性率最大値 0.1198726857040391
PCR 検査実施件数(単日) | PCR 検査陽性者数(単日) | 陽性率 | |
---|---|---|---|
日付 | |||
2020-02-06 | 19.0 | 0.0 | 0.000000 |
2020-02-07 | 9.0 | 0.0 | 0.000000 |
2020-02-08 | 4.0 | 0.0 | 0.000000 |
2020-02-09 | 10.0 | 0.0 | 0.000000 |
2020-02-10 | 12.0 | 0.0 | 0.000000 |
... | ... | ... | ... |
2021-06-29 | 61916.0 | 1375.0 | 0.022208 |
2021-06-30 | 67576.0 | 1811.0 | 0.026799 |
2021-07-01 | 77063.0 | 1741.0 | 0.022592 |
2021-07-02 | 67044.0 | 1774.0 | 0.026460 |
2021-07-03 | 38122.0 | 1864.0 | 0.048896 |
369 rows × 3 columns
# 陽性率の折れ線グラフ plt.figure(facecolor='w') plt.plot(df_rate['陽性率']) plt.plot(df_rate['陽性率'].rolling(7,1).mean()) # 7日移動平均 plt.title('新型コロナ日ごと陽性率(2020-02-05~2021-07-03)') plt.gcf().autofmt_xdate() # 日付ラベル重なり解消 plt.grid() plt.savefig('07_2陽性率折れ線グラフ.jpg') plt.show()
アメリカCDCは少なく見積もってもアメリカ人の3分の1が既に新型コロナに感染しているという認識だという。1億人以上。
日本で3分の1なら4000万人。計算したところ、全国で1日あたり219万人を検査すれば妥当な陽性者数が出るかもしれん。
現在の水準では1~2桁足りませんね。
しかし感染者の99%以上は発症すらしないので、検査するのは無駄でしょう。
推定感染者数4000万人のうち1%が発症したとすると40万人。一日あたり1095人の発症。そのうち重症化するのは・・・
この後で見るsevere_daily.csv
データに載っている。
no.8 recovery_total
df_recovery_total = pd.read_csv(files[8])
df_recovery_total
日付 | 退院、療養解除となった者 | |
---|---|---|
0 | 2020/1/29 | 1 |
1 | 2020/1/30 | 1 |
2 | 2020/1/31 | 1 |
3 | 2020/2/1 | 1 |
4 | 2020/2/2 | 1 |
... | ... | ... |
517 | 2021/6/29 | 763569 |
518 | 2021/6/30 | 765277 |
519 | 2021/7/1 | 766949 |
520 | 2021/7/2 | 768722 |
521 | 2021/7/3 | 770414 |
522 rows × 2 columns
大して意味なさそうなのでグラフ無し。
no.9 severe_daily
df_severe_daily = pd.read_csv(files[9])
df_severe_daily
日付 | 重症者数 | |
---|---|---|
0 | 2020/2/5 | 0 |
1 | 2020/2/6 | 0 |
2 | 2020/2/7 | 0 |
3 | 2020/2/8 | 0 |
4 | 2020/2/9 | 0 |
... | ... | ... |
510 | 2021/6/29 | 523 |
511 | 2021/6/30 | 517 |
512 | 2021/7/1 | 511 |
513 | 2021/7/2 | 501 |
514 | 2021/7/3 | 496 |
515 rows × 2 columns
# severe_dailyの折れ線グラフ # 時系列データに変換 df_severe_daily_copy = df_severe_daily.copy() # データフレームをコピー df_severe_daily_copy['日付'] = pd.to_datetime(df_severe_daily['日付']) # 日付列をdatetime型に変換 df_severe_daily_copy = df_severe_daily_copy.set_index('日付') # 日付列をインデックスにする # 折れ線グラフ plt.figure(facecolor='w') plt.plot(df_severe_daily_copy) plt.title('新型コロナ日ごと重症者数(2020-02-05~2021-07-03)') plt.gcf().autofmt_xdate() # 日付ラベル重なり解消 plt.grid() plt.savefig('09_severe_daily折れ線グラフ.jpg') plt.show()
↑の陽性率の所で、一日当たり1095人の発症者が出ると推定したが、1月は冬なんでまぁ分かるが、6月は多い。なんだろう? しかも重症者数でこの数値。「発症=重症」みたいな値。だいぶ高い。
風邪の原因の80~90%がウィルスによるもので、残りは菌だという。それらのウィルスのうち15%ぐらいがコロナウィルス。
年間に誰でも2~3回風邪のウィルスに感染しているらしいが、別の医療系サイトでは3~6回感染しているとしてあった。風邪の症状などそんなに頻繁に起こらないわけで、気づかないほどヘナチョコレベルか、発症していない、無症状なわけですよね。
仮に日本人全員が年間3回風邪に感染しているとして、そのうち15%がコロナウィルスなので、年間延べ5400万人がコロナウィルスに感染しているということになる。気づかないけど。
で、感染のうち99%以上が発症しない、いや、1%が発症するとして年間54054万人が発症。コロナウィルスで重症者が出まくるなんて今まで聞いたことないなぁ。「重症化=インフルエンザ」って認識はあるが。
以上。