お問い合わせ

目次

最近ではオープンデータが国や自治体からたくさん公開されるようになってきました。
私も面白そうなデータがないか探すことがよくあるのですが、悲しいことにフォーマットがそのままだと分析しにくい形になっていることが多いです...

でもそんなときはTableau Prep Builderの出番です!
元データには手を加えずにTableauに取り込みやすい形にデータのフォーマットを加工することができます。
今回はTableau Prep Builderの実践編として、統計局が公開している家計調査のデータを分析できる形に前処理する過程を解説いたします。


家計調査って何?という方は、弊社のブログに解説した記事がありますのでこちらをご覧ください。
家計調査の話

使用するデータの準備

家計調査の中から『<品目分類>1世帯当たり年間の品目別支出金額,購入数量及び平均価格 食料「肉類~乳卵類」』のデータを2019年から2021年の3年間分使い、Tableau Desktopで使いやすい形に前処理していきます。
使用するデータは以下のリンク先からダウンロードしました。
2019年
2020年
2021年

Excelは以下のようなフォーマットになっています。
タブが2つありますが、今回は「乳卵類」のタブを使ってみましょう。

このデータを以下のように都市別の消費金額、数量がまとめられたフォーマットに加工することが今回のゴールです。

Tableau Prep Builderでの前処理

①データに接続

ダウンロードしたデータに接続します。
Tableau Prep Builderを起動したら、データを「最近のフロー」という表示されているあたりにドラッグ&ドロップします。
「データに接続」からデータファイルを選択してもOKです。

②データインタープリター

データを読み込むと右下にプレビューが表示されるので、項目名などが正しく読み込まれているか確認します。

今回のデータはフォーマットの形がTableauに適した形になっておらず、正しく読み込めていないため、フィールド名が「F1、F2...」、値もNullになっていますね...

このような場合に使うのが、Tableauが自動でデータ項目を判断し読み込んでくれるデータインタープリター機能です!

左側のパネルで「2019.xls」をクリックすると、下の方に「データインタープリターの使用」という項目があるので、チェックボックスにチェック。

項目名が表示されるようになりました!

③データのユニオン

今回はデータが1年ずつ別ファイルに分かれていますので、これをひとつのデータソースとしてまとめる「ユニオン」を行いましょう。

左側のパネルで「2019.xls」をクリックすると、Excelに含まれるデータがタブごとに表示されます。
そこから「乳卵類」を画面右側の白いエリアにドラッグ&ドロップします。

次に「入力」のタブに表示されている「表」をクリックし、ラジオボタンで「複数のテーブルをユニオン」を選択します。

ファイルフィルターのところに入力されている「2019.xls」を「*.xls」に変更すると、3年分のファイルがひとつにまとめられます。
※「*.xls」と指定することで、同じフォルダに含まれるxlsファイルすべてがユニオンの対象とされます。もし同じフォルダに関係のないxlsファイルが入っている場合は、別の場所に退避させるなどしてください。

2つのワークシートのうち、今回は乳卵類を使いますので、フィルターで絞り込みます。
「ワークシートフィルターを追加」から「ワークシート名」をクリックし、「一致する」の下に「乳卵類」を入力します。
こうすると「含まれるテーブル」が乳卵類のワークシートのみに絞り込まれます。

3年分読み込まれていることを確認し、「適用」をクリックするとユニオンは完了です。

実際にユニオンできているのか、確認してみましょう。

ビューに表示されている乳卵類のアイコンの「+」ボタンから、クリーニングステップをクリックしましょう。データサマリーの一番右側を確認してみると、「File Paths」という項目があります。

これはユニオンすると作成される項目で、データの元ファイル名を示しています。
2019.xlsから2021.xlsまでありますので、3年分が読み込まれていることが確認できました!

④値の分割

このFilePathsをそのままデータの「年」項目として使うため、「値の分割」で数字の部分だけ取り出しましょう。
「...」の値の分割からカスタム分割を選択します。

拡張子「.xls」より前が数字なので、区切り文字に「.」を入力し、最初の1フィールドを指定して、分割。

数字の部分だけ取り出すことができました。

⑤列の削除・データフィルター

あとは各列を確認しながら、不要な項目を削除したり、フィルターしたりすることで取り除いていきます。

以下のフィールドは値がすべてNull(空白)か、もしくは都道府県の英名など、不要な列なので削除。
・都市階級地方都道府県庁所在市 City group District City with pref
・都市階級地方都道府県庁所在市 City group District City with pr 2
・都市階級地方都道府県庁所在市 City group District City with pr 3
・都市階級地方都道府県庁所在市 City group District City with pr 5
・File Paths

フィールドの「...」から「削除」をクリック、削除していきます。

Ctrlキーで複数選択して、まとめて削除することも可能です。

次に都市名が入っている列を見てみると、Nullや「関東」のような値も入ってしまっているので、フィルターで都市名のみに絞り込みます。

フィールドの「...」からフィルター、「選択した値」をクリック。
「除外」タブを選択し、Nullや地域名など不要な項目にチェックをいれ、完了をクリック。

だいぶスッキリした状態になりました。

⑥フィールド名修正

あとはフィールド名がそのままだと読みづらいので、年フィールドを作成したときと同様に修正しましょう。

④で分割して作成したフィールドも「年」と修正します。

同様にして、他のフィールド名も修正します。

⑦出力

これでTableauで扱いやすい形になりましたので、あとは出力すれば前処理は完了です。
クリーニングステップの+アイコンから「出力」をクリックします。

出力形式や保存先を設定しましょう。hyperのほか、csvやExcelでも出力可能です。

「フローの実行」、または出力の「▷」アイコンをクリック、保管先に指定したフォルダに出力してデータの前処理は完了。

今回作成したフローの全体像と手順の対応関係は以下のようになります。

Tableauで可視化

では、出力したデータをつかってTableauを可視化してみましょう。

最近、卵の価格が高くなったこともあり、過去の消費傾向がどうだったのか気になったので、購入数量と支出金額の平均値を推移をみてみました。

卵、バター、チーズのすべてで2020年から2021年にかけて購入数量が減少傾向であり、バターとチーズはそれにともない支出金額も減少しているようですが、卵だけは支出金額が増加しています。
卵の価格は数年前からじわじわ上がっていたのかもしれないですね。

地域別の傾向も気になるので、卵の消費量1kgあたりの支出金額をマップでみてみました。
金額が低いほど青色、高いほど赤色で表示しています。

こうしてみると、赤色のエリアが都市部を中心に地方へもじわじわと広がっているように見えます。
これが2023年以降どうなるのか、家計調査が公開されたらまた可視化してみたいところですね。

まとめ

今回はTableau Prep Builderの実践編として、オープンデータの前処理過程を解説してみました。
今回は横持ちのフォーマットで出力しましたが、縦持ちにする過程も今後またこちらのブログでご紹介しようと思います!
ただ元のExcelを修正しなくても、ほとんどクリックだけで分析できる形に加工することができるのはとても有難いですね。

ぜひTableau Prep Builderを使ってオープンデータを活用してみてください。

Tableauを体験してみませんか?

INSIGHT LABではTableau紹介セミナーを定期開催しています。Tableauの製品紹介や他BI製品との比較だけでなく、デモンストレーションを通してTableauのシンプルな操作性やプレゼンテーション機能を体感いただけます。

詳細はこちら

BI LAB編集室

執筆者 BI LAB編集室

BI LAB(データ活用研究所)編集室です。 BI、AI、DWHなどデータ活用に関するトレンドやニュースやコラムをほぼ毎日配信しています。押さえておきたい基本知識から、最新ニュース、事例インタビューやお役立ち情報・セミナーレポートまで、データ活用の専門家ならではの視点と情報量でお届けします。

1 分で読むことができます。

ゼロからわかるBIツールTableau(タブロー)使い方 入門講座の目次

1 分で読むことができます。

Tableauの日付関数入門【DATEDIFF】

2 分で読むことができます。

Tableauを使ってデータを結合してみよう!

1 分で読むことができます。

【Tableau】日付関数入門【DATEADDで日付を可算】

1 分で読むことができます。

Tableauでダッシュボードを作成してみよう!