HOME >> Pythonをさわってみよう > T市のコロナ患者発生状況の解析 再挑戦
Python の使い方を実感するため、近隣の街のコロナ患者発生状況の解析を実施しました。 この中で、中止していたT市の解析にういて、方法をかえて再挑戦しました。
■ T市の解析
先回実施したT市の場合、日毎のデータがHTMLテーブル形式で公開されていました。 そこで、O市の解析プログラムにおいて、対象ファイルの記述ををPDFファイル名から、ホムページのURLに変更するだけで容易に対応できました。
しかし、HTMLのテーブル表示で示されたデータは日毎のデータです。 このため、一ヶ月のデータとするためには、同じ作業を31回も実施する必要があるのです。 これを実施する根気がないので解析をあきらめて中止しました。
今回は、この方法に工夫を加え、日毎のデータを表示しているページのURLリストを事前に作成、そのリストを使って一ヶ月のデータを一気に解析する方法に挑戦することにしました。 少し手間はかかりますが、同じ作業の繰り返しでは無いし、HTML記述の知識を使いながらでの作業ですので、これもWebスクレイピングの学習の一環として実施しました。
.
.
● URLのリストを作る
まず、日毎のデータを示すページをリスト様式で記載している部分を探します。 例えば右の様に記載されていたとします。 このページを使ってURLのリストを作ります。 その手順は下記の様に実施しました。
.
● Python での解析処理
事前に作成してURLリストを使って解析を実施します。 Python の記述内容を下に示します。
作成しているURLリストを url_list のカッコの中にペーストします。 リストデータには改行記号が入っていませんので、長い一行の文になっています。 そして、一つずつのURLについて解析させるのですが、これを FOR文を使って繰り返し処理させます。 この時の繰り返し回数は、先に数えていたデータ数を range の部分で指定します。 31日分のデータですが、報告が遅れたデータも計算させるため、範囲を広げています。
確認のために処理の中間ファイルを出力するようにも設定できます。 そして、ピボットテーブルの解析では、日付データはゼロから数えて4番になるので、縦の欄の指定として index=4 と指定し、年代欄は横の欄として columns=1 と指定します。
解析結果のCSVファイルを表形式で攻めすと、下の様になります。
欄の表示順を整理しながら、グラフ表示のためのExcel ファイルにコピペしていきます。 上記の青く囲った範囲が活用するデータです。
■ 解析結果
解析結果を先回と同じようなグラフに表示させました。
■ まとめ
Web スクレイピングには、事前の処理がPython の解析を容易にしていることを実感しました。 何でもかんでもPython に頼るのは得策ではないようです。
また、目的の一つであった” 第7の初期は、幼稚園児童から広がっている ” という指摘の検証について、グラフからはこの傾向が読み取れませんでした。 これは、近隣の街とは異なる傾向でしたので、なにか地域の事情があるのかも知れません。