見出し画像

Get your hands dirty! データ可視化の準備作業

サンフランシスコ州立大学でPino Torgu教授によるインフォメーションデザインの授業に感銘を受けて以来10年間ほどデータ可視化に携わっている。情報化社会と言われているこの現代、様々なデータが比較的容易に手に入るようになった。しかし、提供されているデータは多種多様でそれらを可視化しようとなると可視化のプログラムを作成する以前にデータの整理や調整など色々面倒な作業が発生する。その現状や苦労を伝えるべく、今回世界の肥満状況に関してデータ可視化する個人的なプロジェクトの背景で行なったデータの準備作業を記録として残す。

ちなみにPino Torgu教授に関してはこちらを参考に:
https://design.sfsu.edu/pino-trogu


1. データの検索

肥満に関するデータは比較的手に入りやすいデータだが、一部の都市や国単位と比較して世界各国のデータのとなると少々見つかりにくかった。世界保健機構(WHO)や世界銀行(World Bank)などが考えられるデータ提供元であったが、それらも肥満に特化して調査している機関(World Obesity Federation)からデータを得ていたようなのでここの情報を参照。他、データ可視化においてObesityが及ぼす健康被害(糖尿病との相関)もみてみたかったのでIDF(International Diabetes Federation)からもデータを取った。

World Obesity Federation:
https://www.worldobesity.org/

IDF(International Diabetes Federation):
https://idf.org/

他、Our World in Dataというところが肥満に関して面白いデータ(肥満が原因となる死亡率の過去から現代の推移)を出していたため、こちらのデータも取得しどう可視化できるか検討中。
https://ourworldindata.org/obesity


2. データ形式の問題

一般的にcsv (Comma Separated Values)やJSON(JavaScript Object Notation)形式でデータが提供されていれば扱いやすいのだが、World Obesity Federationにて提供されていたデータはpdfのみ。まずこのpdfをオンラインの無料のツールなどでcsvに変換できないか試してみる。その結果が下のスクリーンショット。

ヘッダー(表ではなくグラフィック)などもついていたためやはりぐちゃぐちゃに。PDFのページごとにシートが分かれていたり一部の列分けがちゃんとされていなかったり(国名、データ取得年など)ここから調整するのは相当時間がかかりそうなので他の方法を試してみる。

幸いPDFだけではなく、同サイトでHTMLでテーブルの表示もされていたため、Chromeの開発者用のツールを使いhtmlのソースコードを取得。それを用いて無料のオンラインツール(HTMLのテーブルをcsvに変換してくれるもの)を探し、これで無事csvに変換する事ができた。

オンラインのツールはこちらを使用:
https://www.convertcsv.com/html-table-to-csv.htm

先の画像と比べてもらうとよくわかると思うが、断然こちらの方が使いやすい。*データがない箇所のハイフンの削除や、テキストと認識されている数字の形式の変換は必要。またヨーロッパ(イギリスを除く)ではほとんど小数点がカンマで表されるためこちらピリオドに変更する必要がある。


3. 実際に行った作業

以下(1から4まで)はWorld Obesity Federationから得た(htmlからcsvに変換した)データ(成人)の調整手順。

  1. Yearのデータの形式をテキストに統一
    2013-2014や2014などデータの形式としてテキストと認識されそうなものと数字として認識されそうなものが混ざっていたためこれを確認し統一(エクセルにてセルを選択して形式の変更)

  2. Ageのデータの表記(一部)変更
    一部男性と女性に分かれていたものがあり、これの表記がM:25-64; F:15-69などと省略されていたものがあったため、こちらをよりわかりやすくMales: 25-64, Females: 15-69と変更 (ウェブ上でデータを取得して表示する際に変更を加えなくていいように)

  3. 太りすぎ、肥満データ部分のタイトル調整
    これに関して上の添付の画像では確認できないがMales (BMI 25-29.9kg/m²)のように長く、またスペースやカッコなどの記号もあるため(経験上データを取得する際極力シンプルにする方が予期せぬエラーが起こりにくいと判断)、Males_Overweight、Males_Obesityなどに変更

  4. 太りすぎ、肥満データ部分のデータ調整
    上でも述べたようにヨーロッパでは小数点がコンマで表されるため、こちらを小数点(ピリオド)に変更。またデータがない場所にハイフンが入っているがこれを削除して単に空にした。変更方法はエクセルにて変更部分を選択して特定の文字の検索、それの一括置換で行う


    以下も同様にWorld Obesity Federationから得たデータの調整に関してだが子供に関するデータは成人のものと分けられており、データの形式も違ったため追加の作業を行う(上記の1、4の作業は同様に子供のデータにも行った)。

  5. 追加作業1: 不要なデータの削除
    テーブルにcut-offsという項目があったがこれは使う予定がないため削除

  6. 追加作業 2: 年齢のデータのエラー修正
    下添付画像の通り年齢の表記にエラーが出ている。エクセルで形式をテキストに変更しても解決せず、こちら際入力が必要。pdfからcsvに変換したデータでは問題なくこのデータが表示されているようなので、元のデータを見て手入力するのではなく、こちらのデータを参考に慎重にコピー&ペーストで対応

これより先は別の機関(IDFとOur World in Data)から取得したデータの調整。どちらもcsv形式でデータを取得できたこともあり、極めて使いやすい状態であった。前述の調整例と似たような内容が多かったため箇条書きに。

- 両方のデータに関して不要な項目があったのでこれの削除(コード番号、国とは別に地域の情報など)

- IDFのデータに関しては国以外に地域単位でのデータも混じっており(ヨーロッパなど)これらは削除

- IDFのデータは未来の予想値(2030や2045など)が入っておりこれらも使う予定がないため削除。また2000年に関しては不足している箇所が多すぎるため、こちらも削除

他必要に応じてデータ項目の名前の簡略化、スペースの削除などを行う。余談だがOur World in Dataのデータは使いやすいようにかなり調整されている印象があった。下にIDFとOur World in Dataの示す。

IDF
Our World in Data

現時点でまだ作業を行なっていないが、最後に各データに含まれる国の数、名前を比較して整合性があるか確認予定。これはデータ分析やウェブ上で可視化する際に異なるデータを関連づける事があるため(例:日本の肥満率のデータを選択した際にこれに紐づく糖尿病のデータも表示するなど。この際2つのデータをつなぐ鍵となる言葉が国名となる)。


以上が今回発生したデータ可視化に必要なデータの取得から変換、また調整作業。基本的にはこのデータを用いて可視化が可能となるわけだが、どのような着目点で可視化するかなどストーリーを作る上でデータの性質などを知る必要がある。これはEDA - Exploratory Data Analysis (探索的データ分析)にて行うが、また別の記事で紹介する。他にはこのデータを地図上でで可視化するために世界地図の地理データ(GeoJSONやTopoJASON)の取得や、csvのファイルの変換(JSON形式などに)の作業なども発生する。

この記事では基本的な(またよく起こりうる)データ可視化におけるデータの取得からそれの調整作業を最近の個人のプロジェクトを元に紹介した。様々なところから提供されているデータはすぐ使用できる状態とは限らず、用途に応じて(特に可視化するに当たっては)様々な作業が発生する(これらはそれの一例にすぎない)。データ可視化のプロセスは単純ではなく、裏ではこのような泥臭い作業(Dirty Work)があることをぜひ知って欲しい。


この記事が気に入ったらサポートをしてみませんか?