くないらぼ

python でおかねをあならいず

はんなりpythonで泥臭いpandasのハンズオンをやりました。対象データはなんと花粉ですよ奥さん。

くない(id:jdgthjdg) です。 2019/03/15(金) に、運営として参加している "はんなりpython" という京都のpython勉強会でpandasのハンズオンを発表しました。 開催してすぐに、同じ運営の (id:mazarimono) さんがブログを書いてくれました。

hannaripython.hatenadiary.com

本ハンズオンの会場提供のスプーキーズさん ありがとうございました!



ハンズオンでは、pandas のやってみた系ではあまり触れられない、 魔の部分 についてをメインに猛スピードでやっていきました笑

今話題の 花粉 に関するデータをいじっています。最後には、盆地は気温だけでなく、花粉も辛いのかもしれない という仮説が得られました笑

f:id:jdgthjdg:20190321133018p:plain
花粉とpandas

エラーのセルを残して試行錯誤の過程を残した

今回はちょっと工夫して、jupyter notebook のセルに試行錯誤の過程を残していきました。
セルでエラーが起きたら、そのセルはそのまま残して、下のセルでまた試すという感じです。 (実行していくと分かります。)
そのように書いていったら、ほんの数行の処理にも、何十ものセルが必要になり、5つ以上のノートブックに分割することになりました笑
逆に言うと、この何十もの試行錯誤のセルは初心者には見えないまま、最後の正解のセルだけが巷で紹介されているとも言えます。
そういう、行間を紹介するという意味では良い試みになったかなと思います。


資料について

こちらが資料です。dockerで環境ごと動かしてもいいですし、.ipynbファイルをローカル環境のjupyter系で開いて動作させても大丈夫です。 コードの一部で、ファイルを開くための相対パスの調整が必要かもしれません。

github.com

ハンズオンのオープニングで使った雑なスライドはこちらです。
こちらは内容は無いので、githubのレポジトリの方を見てください笑


資料のレベル(pandas的な意味で)について

内容としては、初心者のみを対象にしているわけではありません。
むしろ中級者以上の方でも知らない方が多そうな、便利な処理方法や、groupbyネタも織り交ぜ、自分のpandasエッセンスを詰め込んでいます。


公式ドキュメントのSEOが低い問題

発表では "公式documentを読もう!" とお伝えしたのですが、そのための公式のメソッドのリンクを貼ろうと検索すると、 googleの検索結果の下の方に出てきてしまいました。上位には個人のブログ記事が出てきます。
個人のブログもとても良いのですが、知らなかった使い方を知るには 公式ドキュメントが一番です。

実際に、今回のハンズオンで使った pandas.read_excel についても、 sheet_name という引数には、シート名だけでなく、正の数のindex値が使えることを公式docを見て初めて知りました。(sheet_nameっていう名前がよくないのは置いておいて)
おそらく個人のブログでは便利オプション全てについて触れられることは少ないでしょう。


ハンズオン中の質疑応答をscrapboxで非同期にできた

scrapbox に質問を書いてもらいました。

それらを発表側の区切りのいいタイミングで、ハンズオンを中断して回答することができました。
一方通行感が減ったので、個人的にはかなり良かったです。

そのときの scrapboxのリンクはこちら。
scrapbox.io


感想

多少なりともpandasを触ったことのある経験者が多いということで、このようなハードモードハンズオンをしてしまいましたが、経験者でもこれをあの時間で全部理解するのは大変だと思いますw

次にやるならもっとゆっくりに、何回かに分けてやりたいですね笑

あと、groupbyは説明できなかったので、これは専用に時間をとってでもやる価値があると思います。


Special thanks

今回のhands-onでは運営の id:masayuki14 さんによる、github レポジトリ と そのDocker環境に随分助けられました。 jupyter 環境の構築も、初めての方だと大変だと思います。 Windows 機ではうまくいかなかった方が多くいたので、そこが課題ですね。。。なにか良い方法あればいいですね。




はんなりpythonについて

はんなりpython では、運営を募集しています。

もはやpython関係なくても問題無いくらいゆるいですw
全体的に心理的安全性が高い勉強会だと思います。これは関西人ならではなのかも。

また、gitter というチャットで運営はわちゃわちゃ話をしていますので、適当に絡んだり希望するpythonネタなどを教えていただければと思います。
gitter.im