相変わらず、「Tellus×TechAcademy 初心者向け Tellus 学習コース」で、とりまPythonの基礎を学習し続けている僕です。
素晴らしい学習教材です。シンプルなのが僕に向いてます。
今回、ついに成し遂げました……
前回やった、イマイチ腑に落ちなかった前回のPythonプログラム「曜日別に、年代ごとのコロナ陽性者数を出す」について、かんいちさんから、
「pivot_tableとreindexを使えばできるんじゃないか?」
と、ご丁寧にサンプルコードつきでアドバイスいただきました。
● pivot_table とは?
ピボットテーブル、そう、エクセルのあのピボットテーブルと同じことが、Pythonでもできるようなのです。
詳しくは記事下のリンクで。
● reindex とは?
エクセルで言うと、行や列を並べ替える機能です。
詳しくは記事下のリンクで。
で、これらと格闘すること1週間。
結果としては、見事成功! かんいちさんマジすごいっす! ありがとうございます!
やり方は、概要で書くと以下の通り:
- 東京都のサイトからcsvデータを読み込む
- 「曜日」と「患者_年代」でピボットテーブルを作る
- reindexで希望通りの並びにする
- データを整理する。特に「NaN」を別の扱いやすいもの(0とか)に変えるのは大事らしいです(詳しくはわからない)
- グラフを描く
コードは以下の通り:
https://gist.github.com/kotoripiyopiyo/145bf40b9efe596ea2c0da34ec252573
結果は以下の通り。
優勝! 期待通りの結果を出せました。
本当は、曜日はちゃんとシステムに「これは曜日だ」と理解して欲しかったのですが、なんか weekday_name のバグ?らしく、修正が大変そうなので、今回は諦めました。
これで充分でしょう。
あと、このピボットテーブルが合ってるかどうか確認するために、こっそりエクセルのピボットテーブルで検算してみたのは内緒です……
いやPhtyhonを信用していないわけじゃないのよ。自分の腕を信用していないんです。
ところで、このグラフから読み取れることは……
ないですね! 特にない。
全員「水曜から土曜にかけて上がっていくのね」という、既知の情報以外ない。
お疲れさまでした自分。以上!って感じのプログラミングでした。
いやープログラミング面白いですね。フッと気がついたらアッという間に2〜3時間経ってるという、ゲーム的な時間の歪みがある。
これはかなり自分を律してやらないと、身体壊すなー。
10代とか20代のうちにこの面白さに目覚めて、エンジニア目指せばよかったなー。
さて、そろそろ復習は止めて、前に進まなければなりません。
次は、どちらに進もうか?
- 諦めて機械学習の勉強をはじめる
- このデータをWebから誰でも見れるように、AWSなどをやる
- なんか手元に「退屈なことはPythonにやらせよう」っていう辞書みたいな厚さの本がある。手を出す?
悩ましい…どれも今までみたいに雰囲気だけではできない、茨の道っぽい……
ps.thx!
Pandasのデータを格納するオブジェクトDataFrameを理解する - DeepAge
Pandasでピボットテーブルを手軽に作成するpivot_table関数の使い方 - DeepAge
Pandasでインデックスを再設定するreindex関数の使い方 - DeepAge
pandasで欠損値NaNを除外(削除)・置換(穴埋め)・抽出 | note.nkmk.me
pandas.DataFrameの行・列を指定して削除するdrop | note.nkmk.me
pandas.DataFrameに列や行を追加(assign, appendなど) | note.nkmk.me
pandasで行数、列数、全要素数(サイズ)を取得 | note.nkmk.me
pandas データフレームの行名・列名の参照と変更と追加 | AVILEN AI Trend
matplotlibでグラフの文字サイズを大きくする - Qiita
かんいちさん
そしていつもの「Tellus×TechAcademy初心者向け Tellus 学習コース」