期日前投票所マップのデータを作ってみた
本日、Code for Japan の主催するソーシャルハックデーに、期日前投票所マップを作っているあびこさんが来てくれて、「みんな手伝って!」と言ってくれたので、データ作りをお手伝いしました。
マップそのものは下記から見ることができますが、まだ全国のデータが揃っていないので、全国分を作るべく有志が集まってわいわいやっています。
2021衆議院選挙 期日前投票所マップ 全国版
実際にデータを作ってみて、これを手作業でやるの大変!と思いつつ、みんなで手分けすればすぐ終わりそうではあったので、手順をこの記事に残してみました。難易度が高いわけではないので、興味が湧いたらぜひお手伝いいただければ嬉しいです。
まず、基本的には2021衆院選期日前投票所マップ 作成マニュアルというのがあるので、それに従って作業をしていけばOKです。
ただ、ステップ①と②についてはだいたい終わっているので、③からお手伝いするのが良いでしょう。
最終的にやりたいことは各県ごとの期日前投票所の住所つきのリストを作ることですが、各都道府県の選挙管理委員会によってフォーマットが全然違い、さらに県によっては住所がかかれていない、ということもあり、なかなか大変でした。
さて、私は試しに鹿児島県のデータを作ってみました。以下のような手順でした。
1. 期日前投票所の場所のPDFをダウンロード
鹿児島県の場合は、下記のページにありました。
http://www.pref.kagoshima.jp/kensei/senkyo/r3syuugi/kijitsuzen-fuzaisya.html
PDFを見てみるとこんな感じです。はい。見事に住所が書かれていませんね・・・ご丁寧にセル結合までされています。さらに、色分けで設置日を表現しています。そして、1行に2つの場所が入っていたりと、なかなかのフォーマットです。
このデータを、最終的にこういうCSVファイルにしていきます。(このサンプルは、2020年の知事選の時に作ったものらしいです)
2. データをExcelにコピペする
対象の県の過去のExcelファイルをこちらの過去ファイル置き場からダウンロードしてきます。
ヘッダ行をコピーした別シートを作り、1でダウンロードしたPDFのデータをひたすらコピペしていきます。
Adobe Acrobat を使うと PDF から Excel にエクスポートできるので、まずはExcelにしてからデータをコピペしていきました。Acrobat を持っていない場合、pandasなどを使って変換しても良いかと思います。
それらが難しい場合、PDFからそのままコピペを頑張りましょう。
鹿児島県の場合、実施日については、グレーになっているセルを元に手入力です・・・
CSV形式でExportしたCSVファイルをExcelで開いたもの
上記から転記して作ったファイル
3. 住所を入れよう!
さて、次に住所を登録していきます。鹿児島県のファイルの場合住所が一切書かれていなかったのですが、他の都道府県の場合は住所が元から入っているかもしれません。その場合このステップはいりません。
とりあえず、過去分のファイルには住所が登録されていたのでマッチングできるものはマッチングすることにしました。(移転とかしているかもしれないけど、小さいことは気にしない)
過去分データがあるタブ方に、市郡フィールドと施設名フィールドを&でつなげた「場所名」というフィールドを作りました。
そして、今年のデータの方から VLOOKUP で同じ住所のファイルを取り出します。下記のような数式を入れてみました。
=VLOOKUP(B2&D2,'Sheet 1 - 表 1'!F:G,2,FALSE)
それっぽくなってきました!
ちなみに、この時点でマッチングができずN/Aになってしまったのが、234件中196件・・・道のりは長いですね。
4. 表記ゆれ分を修正する
うまくマッチングできなかったものがあるはずなので、一つづつ探していきます。例えば・・・
・新ファイル:鹿児島市役所本庁
・旧ファイル:鹿児島市役所
・新ファイル:出水市野田支所
・旧ファイル:野田支所
・新ファイル:指宿市役所指宿庁舎
・旧ファイル:指宿市役所
こういう表記ゆれのものに対応した結果、住所不明なものは121個になりました。
特に、"移動期日前投票車(高倉地区集会施設)"みたいな、移動投票車によるデータがかなり多く増えていました。
5. あとはもくもくと・・・
あとは、Google などで対象の施設の住所をひたすら調べて入れていきました。
それでも、公民館や集会所などについては住所がわからないものもありました。(特に錦江町はわからないものが多かったです。)また、移動期日前投票車については()内に場所が書かれていましたが、数が多くて心が折れたので入力していません。
6. 完成したCSVファイルをアップロードして完了!
最後に、数式になっていた部分を値貼り付けにしてテキスト化し、#N/Aとなっていた部分を一括で削除して、完成です。
これをアップロードしておけば、あとのマップ化はしてくれるそうです。
これをCSVファイル形式で出力して、指定のGoogle Drive にアップロードして完了。(UTF-8で出力するのを忘れずに。)だいたい3時間くらいかかりました・・・。
これをアップロードしておけば、あとのマップ化はしてくれるそうです。
そもそもオープンデータ化してほしい・・・
さて、そもそも論ですが、こういうデータはオープンデータ化して欲しいなぁと思います。行政が持つデータをオープンライセンスかつマシンリーダブルな形で公開することをオープンデータと言いますが、このようなデータこそ、オープンデータ化にふさわしいデータではないでしょうか。
民間企業や他の有志が期日前投票できる場所を検索できるサービスを始めたりもしていますが、各社が同様なことをしているかと思うと、とても無駄ですよね。
政府はオープンデータ化の価値の高いデータを推奨データセットとして公開していますが、ぜひ標準フォーマットを決め、推奨データセットに設定していただきたいと思います。
ちなみに、候補者データについてもオープンデータ化して欲しい・・・