データのクレンジング、クリーニング処理してますか?
複雑なデータを整形するために、自分しか読めない計算フィールド作っていませんか?
少し前に、Tableau Prepの紹介記事を投稿しているのですが、アクセス傾向や流入キーワードを見ていると、ようやく導入に入る企業、検討中の企業が多いのが読み取れます。
Tableau Prepって何がよいの?デスクトップとの違いは何さ。
恐らくそんな感じの方が多そうな気がします。代理店購入とかだと営業から「フワっと」した表現の説明ばかりで一体全体、Prepの何がよいのか伝わってきません。

営業
クレンジングされます、データが綺麗になります(棒読み

ほう… (つかったことないくせに)
ということで実例を出してハンズオン形式でデータをきれいにしてみようと思います。簡単なお題ですが、デスクトップ利用者であれば大まかな使い方は把握できるのではないかと。
参考 Tableau Prep for Business Intelligence
Tableau Prepの初歩的な使い方がわかるようにハンズオンしてみる
お題として、国際連合(国連)で出している人口統計データを使ってみます。

前提条件
この記事はベーシックな内容で投稿します。
Tableau Desktopをまったく使ったことない方向けの書き方はせず、デスクトップを多少なりとも使っていてこれからPrepも使おうか、という方に向けた記事となります。Tableauを使ったことがある人が知っているような概念的な説明は割愛します。
初心者が理解できるように包括的に説明されているコンテンツは動画でUdemyから出ています。興味のある方は活用してみるとよいと思います。
詳細はこちら 買い切り・繰り返し見れるTableau Prep入門動画
テストデータと完成系
国連の人口データはたくさんのエクセルが出ています。そのうち、今回は3つのファイルをデータソースとして使い、Prepで一つの表にまとめます。
元がエクセルのデータ
下記のページにデータがあります。
以下の3つのエクセルファイルをデータソースとします。サイトにファイルはありますが、この後の画像と合わせるため、当ブログ内にファイルを格納しています。
- TOTAL_POPULATION_BOTH_SEXES (総人口が含まれる)
- TOTAL_POPULATION_MALE (男性人口が含まれる)
- TOTAL_POPULATION_FEMALE (女性人口が含まれる)

▲ データを開くとたくさんのシートがあります。それぞれのファイルで使うシートは「ESTIMATES」「MEDIUM VARIANT」の2つです。
前者が過去の人口、後者は予測で中位値です。人口統計では高位、中位、低位などでの予測があるようですが、よく使われるのは中位値のようです。
完成系
3つのファイルは総人口、男性人口、女性人口がわかれているのでこれを一緒にします。国でフィルターすると国別の人口がわかるようになります。
- ディメンション
- 国名
- 年
- メジャー
- 国コード
- 総人口
- 女性人口
- 男性人口
ハンズオンで行う主な操作
高度なことはしません。
クリーニング処理の効果がどの程度かイメージしていただければと思います。同じことをデスクトップでやろうとすれば手間が発生するのは伝わると思います。
- データへの接続(エクセル)
- 列名を都合よく変更
- ステップの操作
- ピボット
- ユニオン
- 結合
- 出力
それではハンズオン(初歩的な使い方編)
- ステップ1データに接続する
Tableau Prepからエクセルファイルを開きます。
- ステップ2最初のステップ処理を行う
まずはざっと俯瞰して使い道のないフィールドを消し去る。
- ステップ3ピボット処理を行う
横持ち→縦持ち切り替え。
- ステップ4再びステップ処理を行う
大きな変化を加えたときはステップ追加で俯瞰する。
- ステップ5ユニオン処理を行う
同じデータ構造のデータを継ぎ足す処理です。
- ステップ6結合処理を行う
キーを合わせて結合です。
- ステップ7Tableau Desktopでプレビューする
同じ端末にDesktopがあればプレビューできちゃう。
- ステップ8ハイパー形式で出力する
時代はハイパーだそうです。
ステップ1: データに接続する

Tableau Prepより「Total Population – Both Sexes.xlsx」を開きます。シートは「ESTIMATE」を選択してください。

▲ 開くと列ヘッダーが正しく認識されていません。元のファイルの上部に説明書きがあり、これが正常な読込を邪魔しています。これはTableau Desktopでもおなじみの「データインタープリター」機能で除外できます。

国連のしょうもない職員が仕事している雰囲気を出すためにわざとエクセル上部に不要なヘッダー情報を付け加えているのよ。


▲ データインタープリターをONにすることで列ヘッダーが意図したとおりに認識されました。
ステップ2: ステップ処理(データを俯瞰、不要列の削除)
ステップの挿入を行って最初のクリーニング処理を行います。ステップは何度でも追加できます。

▲ 「ステップの挿入」を行います。
特に目的なくても 「ステップの挿入」をすることがあります。データの構成がエクセルに近くて俯瞰して見やすいためです。まずはざっとどんなデータか眺めます。

▲ ステップで表示されるデータ項目は大まかに二つ。サンプリングされたものと、実際のエクセル表示に近い表示。サンプリングされているデータ項目上で、型変換をしたり、フィルターしたり、置換したりすることができます。

▲ 使うことはないだろうという列はさっさと消します。「Index」「Variant」「Notes」とはさようなら。
このエクセルは国別、地域別が一緒になっています。地域というのは北アメリカ地方とか、極東地方とか。今回は地方的な情報は外して国別にしたいのでこれらをフィルターして外します。

▲ 「Type」⇒「フィルター」⇒「選択した値」⇒「Country/Area」を選びます。これで地方属性が外れて国のみになります。(Macの場合は、同じ操作ができなかったので「Country/Area」を選んで「保持」を行うことで同じ結果が得られました。
何らかの処理を行うと変更がすべて記録されています。自分が何を行ったかわかるし、誤った変更は削除すればもとに戻すことが出来ます。
ステップ3: ピボット処理
元のエクセルファイルは、年を示すフィールドが1年単位に大量に列ヘッダーとなっています。
一般的には「年度」のようなフィールドを使って行データとして年をいれたいところです。そのほうが分析するにも扱いやすいですよね。
ということでピボットします。ピボットはTableau Desktopでもできるので詳細な概念説明は省きますが横持ちのデータを縦持ちに変更させるための機能です。

▲ クリーニングしたステップに「ピボットの追加」を行います。

▲ 年を示すフィールドをすべて選択して、右のエリアにドロップします。
慎重に1年ごとにピボットを行おうとすると弊害が起きます。詳細は Udemy動画「ゼロからの Tableau Prep 入門」 の中でその弊害を説明してくれています。

▲ ピボットした後は、フィールドが二つ出来上がります。それぞれ「年」「総人口」と名前を付けました。「ピボット1の値」はエクセルファイルごとに「男性人口」「女性人口」と名前を変えてください。
ステップ4: ステップ処理
ピボットした後に再度データを俯瞰します。

▲ フィルターした後は「Type」もいらないので消します。フィルターがかかったまま外せます。「Parent Code」「Parent Code」「Total population, both sexes…」という列もいらないので消します。

▲ 総人口が一番先頭で気持ち悪かったので最後部に持って行きました。列の順番は上記のように変更可能です。
ここまでで「ESTIMATE」シートの処理は終わり、ステップ1~4を同じエクセルファイルの「MEDIUM VARIANT」でも行います。
- 「ESTIMATE」
- 終わった
- 「MEDIUM VARIANT」
- ステップ1〜4で同じことをやる。
一つ目のエクセル完了待ち
二つ目のエクセル完了待ち
ステップ5: ユニオン処理
「ESTIMATE」シートの処理結果と「MEDIUM VARIANT」シートの処理結果をユニオンで繋げます。
- 前者は過去データ
- 後者は未来データ
データ項目を合わせた後に上記をユニオン処理します。

▲ いずれかのステップをもう一つのステップへドラッグすると、ユニオンするか結合するかの表示が現れます。ユニオンを行います。

▲ 列名ときれいに合わせておけば上記の通りにユニオンされます(列ごとに青、オレンジ二つの帯が出ていればOK)
ユニオン後は「Table Name」という列が自動生成されます。これも今回はいらないので消します。ステップを追加しても良いし、ユニオン処理の中で消し込んでもどちらでもOKです。

ついでに右二つのフィールドは、フィールド名を選択して日本語名に変更しましょう。
- Region, subregion, country or area *
- 国名に変更
- Country code
- 国コードに変更
ステップ5までの処理を三つのエクセルファイルで行います。
- 「ESTIMATE」
- 終わった
- 「MEDIUM VARIANT」
- 終わった
一つ目のエクセルと同じことをやります。
一つ目、二つ目のエクセルと同じことをやります。

ステップ6: 結合処理
最後に、三つのエクセルから作った表を一つの論理表にまとめます。結合処理を2回行います。
結合するキーは二つ使います。結合方法は初期状態で出てきた内部結合としました。
- 年
- 国コード

▲ あらかじめ連結するフィールドの名前を合わせておけば、一つは自動でつなげてくれます。今回は年のキーも連結したいので追加しました。
一つの結合がおわったら、残りの結合処理も行います。やり方は同じです。いくつかのフィールドが重複するので余分なものは消します。

▲ 余分なものが消し終わるとこんな感じになります。
淡々と画像やGIF貼り付けていますが、下処理をエクセルでやるか、Tableauでアレコレやるか思い浮かべてください。結構めんどくさいと思います。それがPrepでチャチャっと。
ステップ7: Tableau Desktopでプレビューする
これはオプションですが、結果を抽出等のファイルに出力する前にTableau Desktopでプレビューを行うことが出来ます。プレビューするにはもちろん、正規のTableau Desktopライセンスが必要です。

Tableau Publicだと途中で怒られました。Prepのプレビュー機能から勝手に開いたくせに…

▲ プレビューしたい処理を選択⇒「Tableau Desktopでプレビュー」を押します。あとは、Tableau Desktopが立ち上がり、データが読み込まれます。
ステップ8: 出力する
データを綺麗にする一連の処理が終わったら出力を行います。出力方法は二つあります。
- ファイルに保存
- データソースとしてパブリッシュ
今回は「ファイルに保存」で出力します。Tableau Online, ServerへのパブリッシュはTableau Prep Conductorのオプション加入が必要ではないかと…Conductorなしだとエラーになった。

出力タイプは三つあります。「.hyper」が使える環境がそろっていれば、読込が一番速いのでハイパーにしましょう。
- Tableauデータ抽出(.hyper)
- Tableauデータ抽出(.tde)
- コンマ区切り値(.csv)
Tableau Prepを身に着けるなら動画が最短
冒頭にも書きましたが、Tableau Prepの学習コンテンツが少ないです。Tableau公式サイトには情報はたくさんあるのですがとっつきづらいんですよね。

参考 買い切り・繰り返し見れるTableau Prep入門動画
Udemyの動画だと買い切りでパソコンでもスマホでも繰り返し見れます。このブログより懇切丁寧に約5時間もの時間をかけて説明してくれています。
わざわざ外出してセミナー・講習会に参加しても繰り返し見れるのはテキストブックだけです。動画だとコーヒー飲みながら忘れたところをTableauの権威者が教えてくれます。
Udemyは領収書発行OKです。社外講習と同じ感覚で会社経費に充てられます。
最後に
機能的にはよく使いそうなところのみを駆け足で紹介しました。
Prepは慣れると手放せなくなります。買い切りライセンスでPrepが試せていない企業もTableauの利用頻度が高いのであれば早めにサブスクリプション形式に移行するのもありかと。

\ 予算がなーい! /

営業
・・・

(追記)あ、パワークエリも便利かも♪
以下、続編。