LibreOffice Calc を使って新型コロナのオープンデータを処理

(夏休み企画8/20)

全国や東京都の、新型コロナ感染状況はニュースで詳しいですが身の回りの感染状況はどんなかな？
特に、小学校などでどうなっているか自治体のオープンデータで調べてみましょう。


# 環境

- Ubuntu 20.04
- LibreOffice 6.4.7.2


# オープンデータをゲット


自分たちが居住しているところの、コロナウイルス感染状況はどこにあるかな？
そういったデータは公式ページを見ましょう。僕たちは東京都足立区に居住しているので、「足立区」「コロナ」で調べてみると、足立区公式ホームーページが出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/5f9caa87-a15e-fb22-94d4-03f7c55b322d.png)

この中の
「区内での新型コロナウイルス感染者の発生状況」
https://www.city.adachi.tokyo.jp/juyo/covid19list.html

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/53662310-b618-38cd-1655-f7ae79e41979.png)

からのデータを持ってきます。

様々なデータが公開されていますが、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/ff412b62-f32b-6b9c-8f32-eee352cecdd1.png)



下の方に年代別の感染状況があります。こういったデータを使うと、10歳未満とか、10代で集計できますね。




![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/5d918f6f-367f-4d95-69f0-dd9d47e568d2.png)


ただこれを数えるにはどうしたらいいでしょうか？ 目と手で集計するのではなく、パソコンで自動でやってみましょう。そのためには、ここにある CSV を使います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/c7f65303-856d-fddb-c3ee-db3670c28f88.png)


# オープンデータはどういったデータか


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/ff096091-2527-d545-8144-d35e6c4daa23.png)

「統計表における機械判読可能なデータの表記方法の統一ルール」
https://www.soumu.go.jp/main_content/000723626.pdf

のルールに沿ったデータを使うと、機械での処理がとても簡単になります。


# CSV データの処理

ダウンロードしたデータを開くと、インポートの画面が出てくるので「OK」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/c4b049e2-f60e-e24d-9ff0-cfe20fc8bd88.png)


以下の画面のように読み込まれます


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/ecbac2a1-6796-faa7-cd57-8c3a9eebd3a5.png)

この1万件を超すデータを処理するにはどうしたらいいでしょうか？
「データ」の「オートフィルター」とします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/d1f299f5-c084-056c-8e62-4f20741eda91.png)

そうすると、1行目に▼が出るようになります。これで、絞り込みができるようになります。
まず、小学生のうち10歳未満でどれだけあるか調べてみましょう。
以下のようにして「OK」とします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/d0ea9322-2ab1-55ca-410b-5fa6c5aef747.png)

そうすると、10歳未満だけのデータだけになります。
更に、最新(2021年8月12日)だけを選ぶと5人となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/821599f0-8b4a-8347-42bb-09cdf9e38631.png)


しかしながら、この集計はあまり正しくありません。今回のデータは8月12日までですが、最後の1,2日はデータが揃いきってなくて、後から8月11日とか8月12日のデータが追加されたりします。

なので2~3日前のデータを集計してみます。

8月10日までの1週間だけとなると2021年8月3日~12日になるのでそれを集計してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/13fbef1a-dedd-2613-aaa5-543150c7c82a.png)

2021年8月3日~12日だけチェックします。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/b47b9710-64f2-e50b-2269-a176afabbac0.png)

これで、10歳未満の2021年8月3日~8月10日の分が抽出できました。

でも何人いるか数えるのはめんどくさいですね。
そのために、計算式を入れて自動で数が出るようにします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/0ae2a1e8-73dd-7391-602b-2b5378ca0bb3.png)

このようにして、1行空けます。



1のAに「=SUBTOTAL(102,A3:A99999)」と入力してエンターします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/e130dd64-7933-b516-b77f-79846370ba93.png)

数式のところに、絞り込んだ人数が出てきます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/3bb7f87b-6841-97e7-979f-e8bc0727130b.png)

試しに絞り込まずに感染者全体の数を数えると12680人でした。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/2b11f3a0-3ef1-3e8e-d04d-487092d25e7f.png)

# 人口割合を計算する

さて、10歳未満の最近の1週間の感染人数は79人でした。それは足立区全体から見たらどれだけ多いのでしょう？

いかに、足立区の人口が出ています。
「足立区の年齢別人口最新版(令和3年8月）」
https://www.city.adachi.tokyo.jp/koseki/ku/aramashi/toke-nenre_r0308.html

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/15908040-7ac5-9185-54ba-84de7afb56e9.png)

これの1歳~9歳を足してみます。0歳は除外します。0歳を除外するのは先のオープンデータで0歳は別に集計しているみたいだからです。

電卓アプリで足すと、44873人でした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/139524/acdacc3a-08ab-bcd3-ce08-6799ec301a57.png)


このような計算になりました。

# 今日学校に行くと危険かな？

今は夏休みですが、もし学校があったとしたらどれだけ心配かな？

足立区の1-9歳の人口 と、 1-9歳の感染者の比率を計算すると、

44873 / 79 =  568 

となり、大体小学校2,3校に1人ぐらい感染者が発生しているということになりますね。


実際はもうちょっと多い計算になりそうです。

理由は

- 感染しても検査していない人がいる
- 8月3日~8月10日の感染者に比べて、今8月12日の感染者は増えているだろう

ということです。

さて、何人に一人の感染者になったら、心配かな？