【Python】コロナの曜日別の東京の患者数をグラフに出してみた(挫折に挫折を繰り返した妥協の産物として)


このエントリーをはてなブックマークに追加

ここからちょっと広告です。

広告は以上です。

機械学習があまりに難しかったので、一歩戻ってみることにしました。

何ができるだろう…
そういえば、csvデータを取り込むのと、グラフ書くのは勉強したから、公開されているコロナのデータをグラフにできるのではないか!?

そう思って、元データは「東京都 新型コロナウイルス陽性患者発表詳細」を使って、何かそれっぽい集計をしてみることにしました。

その後が挫折につぐ挫折。

● 最初は「曜日ごとの年代別の陽性者数」を出そうとしました。
でも、インデックスが複数あるときのグラフを作れず、挫折

● 年代別の陽性者数を出そうとしました。
でも、うまい具合に年代が横軸に並んでくれない(100歳とかが一番左に来てしまう)ので、挫折

● 曜日別の陽性者数を出そうとしました。
曜日を「月曜」とか「火曜」とか出そうとして挫折(weekday_nameを使うと「AttributeError: 'DatetimeIndex' object has no attribute 'weekday_name'」のエラーメッセージが出る。たぶんこの辺りが回答なんだろうけど、わからず)

というわけで、とりあえず以下のような妥協の産物ができあがりました……
なお、行間が空いていないのは、行間を開けると表示がおかしくなるからです。このブログのcssも直さなきゃ……

#ライブラリ読み込み
import pandas as pd
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
import japanize_matplotlib
#日付記述を日付データとしてcsv読み込む
covid_data = pd.read_csv("(都合によりURLのあちこちにスペース入ってるけど、使う時はスペース除いてください)https:// stopcovid19. metro. tokyo. lg. jp/ data/ 130001_tokyo_covid19_patients. csv", index_col="公表_年月日", parse_dates=True)
#曜日と日付のマルチインデックスにする
covid_data_multiindex = covid_data.set_index( [covid_data.index.weekday, covid_data.index] )
#余計な列を削る
cd = covid_data_multiindex.iloc[:, 7:8]
#列名を変える
cd.index.names = ["曜日", "公表_年月日"]
#ソートする
cd_sorted = cd.sort_index()
#数を出す
cd_weekday_count = cd_sorted.count(level="曜日")
#グラフ表示
print("0=月曜、1=火曜、2=水曜、3=木曜、4=金曜、5=土曜、6=日曜")
cd_weekday_count.plot(kind="bar", legend=False)

Covidweekday

月曜と水曜が少なめなのですね(死んだ魚の目で)。

極めて釈然としませんが、週末のお勉強としては、今日はこの辺が限界ということで……
次は、

● 「曜日ごとの年代別の患者数」を出す
● 曜日のところを数字から曜日にする

にチャレンジして、どうしてもダメだったら捨てて前に進もうと思います。わからないものをわからないまま抱えて生きることも大切です(村上春樹風味)。
……ヒントあればどんどん教えてください!!!!

p.s.
thx!
https://miyukimedaka.com/2019/10/06/blog-0108-matplotlib-japanese/

Ads by Google

コメント

コメントは、Twitterやはてブに、以下のボタンから本記事のアドレスつきでツイート/ブクマしていただくと、上にあるzenbackのウィジェットに反映されます。
  このエントリーをはてなブックマークに追加
または同ウィジェット内のFacebookコメントでお願いしますー。

Facebookのシェアは……されても誰だかわからないのですが、シェア自体は嬉しいので、下にボタンを置かせていただきます。よろしくお願いします。