![見出し画像](https://assets.st-note.com/production/uploads/images/157718354/rectangle_large_type_2_1286200c15e9b298962423174300f33c.png?width=1200)
衆院選2024候補予定者の政党別状況を眺め見る
政党評価に付随する個人的なメモ。
衆院選2024候補予定者の政党別状況をまとめて、その内容を少し見てみることにした。
なお、コンピュータ関連の専門家ではないので、効率等についてはご容赦願いたい。
原典→加工結果まで
環境
WindowsでChocolatey経由でGitを入れることでGit Bashが使用可能となっている環境を想定。Chocolatey使わなくともGitが入っていれば問題ないと思う。
原典
公示日になれば、立候補予定者一覧ではなく、立候補者一覧になるのだろう。
テキスト化
ブラウザで全選択してファイルdata01.txtに貼り付け。
NHK
NHKについて
コロナ・感染症
ニュース
番組表
NHKプラス
受信料の窓口
衆院選2024
NHK選挙WEB
選挙WEBについて | 選挙の歴史 | 選挙関連ニュース
衆議院選挙2024
選挙区+候補者情報の切り出し
欲しいのは「北海道」~「関連コンテンツ」直前までの行。
awk "/北海道/,/関連コンテンツ/" data01.txt | grep -v "関連コンテンツ" > data02.txt
北海道
名前 党派 新旧 当選回数
1区
かとう たかひろ
加藤 貴弘(41)
自民 新 0回
みちした だいき
「都道府県」「……区」「党派」の切り出し
欲しいのは「都道府県」「……区」「党派」の行。
「区」の行は、数字+「区」で構成されている。
「党派」の行は、「回」で終わる。
「都道府県」の行は、除外で判断するしかないか。
「名前」で始まる行、ひらがなで始まる行、空行、数字を含む行を除くといったところか。「数字」は「党派」の行の「当選回数」にも含まれる。「党派」の行で欲しいのは党派情報だけなので、先にそこを削っておけば、統一的に扱える。
「都道府県」のための除外を掛ければ、結果的に「区」「党派」も残ってくれそうだ。
cat data02.txt | sed -e "/^\t/s/\t.\t[0-9]*回$//" | grep -v -E "(^(名前|[あ-ん]|$)|[0-9])" > data03.txt
北海道
1区
自民
立民
維新
共産
参政
2区
自民
立民
列揃え
「都道府県」「……区」がどちらも1列目にきていて扱いづらい。
「……区」「党派」の前にタブを入れると扱いやすそうだ。
cat data03.txt | sed -e "s/^\t/\t\t/" -e "s/\(^[1-9]\)/\t\1/" > data04.txt
北海道
1区
自民
立民
維新
共産
参政
2区
自民
立民
階層構造→行列構造への変換
「北海道1区」には「自民」「立民」「維新」「共産」「参政」が候補者を立てる予定だと読み解ける。しかし、それを理解するには階層構造を理解する必要がある。
人が理解するうえでは問題ないが、機械的に扱う場合はどうだろうか。YAML的なツールを使う前提であれば若干の変換で可能そうだが、表計算ソフトのような行列志向のツールでは使いづらそうである。
そのため行列構造に変換する。
「自民」「立民」などの行に「北海道」「1区」を補完し、3列目のない行を取り除けば、行列構造になる。列を補完するには「あればそのまま」「なければ直前の行と同じ」で可能だろう。
cat data04.txt | sed -e "s/^\t/*\t/" -e "s/\t\t/\t*\t/" > data05.txt
cat data05.txt | awk "BEGIN { c=\"*\"; k1=c; k2=c; } { if ($1==c) {$1=k1}; if ($2==c) {$2=k2}; k1=$1; k2=$2; print}" > data06.txt
cat data06.txt | awk "{ if ($3!=\"\") print}" > data07.txt
コマンドを3つ使っているので、変換の掛かり方も示しておく。
北海道
1区
自民
立民
維新
共産
参政
2区
自民
立民
維新
共産
awkコマンドで扱いやすいように"*"を補完する。
北海道
* 1区
* * 自民
* * 立民
* * 維新
* * 共産
* * 参政
* 2区
* * 自民
* * 立民
* * 維新
* * 共産
"*"がある列を、直前の行の同じ列の要素で補完する。
北海道
北海道 1区
北海道 1区 自民
北海道 1区 立民
北海道 1区 維新
北海道 1区 共産
北海道 1区 参政
北海道 2区
北海道 2区 自民
北海道 2区 立民
北海道 2区 維新
北海道 2区 共産
これで、第3列の入っていない行は不要となったので、除去する。
北海道 1区 自民
北海道 1区 立民
北海道 1区 維新
北海道 1区 共産
北海道 1区 参政
北海道 2区 自民
北海道 2区 立民
北海道 2区 維新
北海道 2区 共産
「党派」を横方向に展開(失敗)
「都道府県」「選挙区」を単一行にまとめて、「党派」を横方向に展開させたいところ、このあたりは行志向のツールでは難しそうなので、LibreOfficeで行う。PIVOT一発終了か。
![](https://assets.st-note.com/img/1728616810-g15iKl4nBAFMNuhT3Dm0sxR7.png)
![](https://assets.st-note.com/img/1728616966-cNBZnkAvJr9spzSPUYFa61wC.png?width=1200)
![](https://assets.st-note.com/img/1728616865-MeFG38Yzxjw1KtuPobq4VSLN.png?width=1200)
ちょっと思った感じでない。行も列も、並び順があまり嬉しくない。
列は、議員数の多い順に並べたいところであり、非機械的要素といえる。
行は、元データの順としたいところである。こちらは機械的とはいえ、LibreOfficeのPIVOT機能では難しそうである。
列の並び替えも考えて、前にソートキーを付与することにした。つまり以下のような感じである。
「北海道」「青森」「岩手」→「01:北海道」「02:青森」「03:岩手」
「自民」「立民」「維新」→「01:自民」「02:立民」「03:維新」
「区」の並び順はそこまで拘っていないが、1桁の場合に前に「0」をつけるくらいで揃いそうなので、付けておく。
方向性だけ考えて、次の節から加工しなおしていく。
都道府県リストの作成
前節のとおり、都道府県の前にソートキーをつける考えでいる。その前準備で、都道府県の一覧を作る。
MicrosoftOfficeでは、セルの貼り付け時に重複除去ができる。しかしLibreOfficeでは簡単にはできないようなので、LibreOfficeの外でやっておく。
cat data05.txt | grep -v -E "^\*" > data08.txt
北海道
青森
岩手
宮城
秋田
「党派」を横方向に展開(再)
これだけあれば後はLibreOffice上で事足りる。
◆変換リスト
![](https://assets.st-note.com/img/1728616065-UxNmP3DBE8u9oXIRMpGa0TQ5.png)
![](https://assets.st-note.com/img/1728616082-YegcOn51KfLd2BQCjt6r0hMG.png)
◆元データと変換結果
変換結果部分は、VLOOKUPを使用して変換リストに参照して算出している。
![](https://assets.st-note.com/img/1728616916-sWlth9Ti1mZzFcq0XH6g2SeC.png?width=1200)
◆PIVOTパラメータ
![](https://assets.st-note.com/img/1728616966-cNBZnkAvJr9spzSPUYFa61wC.png?width=1200)
◆横展開結果
![](https://assets.st-note.com/img/1728617012-EU0PTp1kzrqjVGcxN8uhJWHs.png?width=1200)
いい感じである。
眺めてみる
データを簡単に眺めた感想
選挙区A:「自民」+「立民」
……岩手の大部分
選挙区B「自民」+「立民」+「共産」
……北海道の一部
選挙区C:上記、選挙区AやBのパターン+α、
当方と似たような考えを持つ人だと、上のような選択肢の選挙区でどこに投じるのがいいだろうか。当方の考えは下に示した状況から大きく変わらず、選択候補は「自民」「維新」「国民」「日本保守」くらいなわけだが……。
「自民(高)」>「国民」>「自民(石)」くらいまでは決められるが、
「自民(石)」「維新」「日本保守」の序列は決められない。そう考えていくと、以下のような序列か。
① 自民(高)
② 国民
③ 「自民(石)」「維新」「日本保守」
④ その他
……ということを考えていたわけである。
横展開の形式に対する感想
党の公認を得られない場合には「無」に分類される。そのため、本当は「自民(石)」「自民(高)」「自民(不明)」「自民(非公認)」とでもするほうが分かりやすいかもしれない。
「石リスト」「高リスト」「非公認リスト」を用意し、元データから加工する際に名前を残すようにし、党派を置換するような方法を取ればいいのかもしれない。
青森
2区
かんだ じゅんいち
神田 潤一(54)
自民 前 1回
からの
青森 2区 自民 神田潤一
からの
青森 2区 自民(石)
のような感じだろうか。
やるとしても別に行うとして、この記事ではここで区切りにしようと思う。