HOME >> 鉄道模型実験室 > Pythonを触ってみよう まず基礎から
先回報告した様に、「EXCELのマクロが機能しない」(2022/6/13)をきっかけとし、80の手習いとしてPython を使ったプログラムが完成した。 そして、この言語に興味を抱いたので、改めて基礎から触ってみることにした。
勉強? 再就職用? いやいや興味の範疇である。 このため、触る という表現にしている。
.
■ なぜ、今 Python ?
最初に、なぜこのPython と言うプログラミング言語に興味を抱いたのかを説明しておこう。
■ 教則本の設定
以前、購入していた初心者向けの書籍をじっくりと読むことにした。 株式会社翔泳社から出版されている三谷純氏の「Python ゼロからはじめるプログラミング」、2021年5月初版である。
この書斎の内容として、目的とするオブジェクト指向という概念を丁寧に説明されていることに目がとまったのである。 さらに、第7章の発展と応用の中に、テキストファイルの読み書き、データの集計とグラフ描画、画像処理、Webスクレイピングと言った内容が紹介されており、応用問題に取り組むきっかけになりそうであったのだ。
要点を忘れないようにメモ書きとしてルーズリーフに書込み、自由に編集できるようにフォルダに収めている。 関連するネット情報も印刷してファイルリングしている。
************************************************************************
最初に、関心のあったオブジェクト指向の説明から読み始めた。 その前の部分は、もう知っているぞ! との思いだったのでパスしたのであるが、説明を読んで行くうちに前に戻る必要があった。 多くの部分が知らないことだらけであり、Python 独自の表現が有ったりしたのである。
飽きっぽい性格なので、一気に読進むことが出来なかった。 結局、およそ3週間も掛けて踏破出来た。 でも、頭の中にはどれだけ残っているのか心配であるが、必要に応じて読み返せばよいのである。 読んだことがあるという記憶だけでよいのだ。
.
■ 応用問題への挑戦
読み込んだ知識を実感するために、応用問題に取り組んだ。 それは、コロナに関する市内発生患者数について、サイトで公開されているデータをもとに、自分が欲しいと思っている日ごとの推移グラフに展開することである。
****************************************
市のウエブサイトにて、右のようなデータをPDFファイルとして公開されています。 このデータは、公表日、年代、性別、症状等などが一人ずつ表示されています。 以前は軽症か、無症状か、感染場所などが記されていたが今は表示されていません。
自分として興味があるのは、年代別の発生件数の推移なのです。 結果から紹介しましょう。 下のグラフが解析結果です。
.
● グラフから読み取れること
グラフを見ての通り、10歳未満と10歳代の人の発生状態が、日々の変化に大きくかかわっていることが分かります。 これは、幼稚園と小学校での感染者が、今回の流行の主流であることを意味しています。
市のホームページでも年代別の割合を第7波分をまとめて円グラフで示していましたが、期間ごとの割合でも、その傾向は理解できます。 しかし、こうやって日ごとの推移をグラフに示すと、より鮮明に理解できると思います。 幼稚園や小学校で感染し、家庭内で家族に広めるというパターンが、第7波の特徴なのでしょうか。
■ 解析方法
教則本の最終章で紹介されていた「Webスクレイピング」による解析方法でチャレンジしようとしました。 これは、ホームページを記述しているHTMLファイルを取込んで、その内容を分析していく手法です。 HTMLによる記述は、このホームページ作成時に用いている言語なので、その内容は理解しています。 意気込んで取り組んだのですが、対象のページがPDFファイルでしたので、このWebスクレイピング手法では対応できませんでした。 がっくりです・・・・・・・・・・・。
***************************************
そこで、PDFファイルのデータをコピー/ペーストによってメモ帳に写し、データ処理の第一歩と説明されているテキストファイルの読み書きの方法を参考にしました。
手順を紹介します。
完成した集計用メモ帳のデータを下に示す。
.
(注意) 上記のPython に記述において、34行と35行の間は、図として示せるように改行を入れていますが、実際には改行を入れていません。 エラーとなってしまいます。
*****************************************
当初は、一行ごとのデータをリストとして読み込み、日付毎に分類し上で、年代別の集計を実施しようとしたのですが、なかなかうまく行きませんでした。
あれこれトライした結果、教則本の例題がヒントになり、年代欄の記述だけに注目してカウントしていけば良いことに気が付きました。 このため簡単な記述で目的を達成することが出来ました。
でも、事前の処理が面倒ですね。
■ まとめ
この教則本を読み解くことによって、長年疑問に思ってきたオブジェクト指向と言う考え方を理解することが出来ました。 そして、Python と言うプログラム言語の取扱い方も少し習得できたようです。
昨日、書店にて新しい書籍を発見し購入しました。 SBクリエイティブ社の「Python 自動化仕事術」です。 著者は永井雅明氏です。 内容の中でPDF編集という項目が目に入ったからでした。 Excelの自動化、デスクトップの自動化、Webの自動化、メールの自動化など、他の項目にも注目です。
まず、PDFの自動化から読み解いて、上記の手順をさらに自動化させる目標が浮かんできました。 さてさて、どうなることやら!
2022/7/29