見出し画像

初心者向け! Tableau PrepでPreppin' Data にチャレンジしてみた

はじめに

こんにちは!
今回は、「これからTableau Prepを使ってデータを整理してみたいけれど、具体的な操作方法が分からない」という方に向けて、ゼロから一人で操作出来る様に操作方法をまとめてみました。

周りに操作方法を聞ける人がいないので苦労しいる、YouTubeのアーカイブ、TIpsブログを見ても具体的な作業の仕方が掴みきれない というお話しを伺う機会がありました。使い始めた頃に 試行錯誤で操作してうまく進められないと「難しいな〜」と感じ、最初の頃は挫折感があった思い出があります。
そのため、この記事を通じてTableau Prepの操作方法を、実際のPreppin' Dataの課題を回答する事例でご紹介したいと思います。

Tableau Prepは、データの準備プロセスを直感的に行える素晴らしいツールです。みなさんが少しでも使いこなせて頂けるようになれば、嬉しい限りです。

*操作の流れを理解して頂けるように記載しました。補足解説は最後にまとめて記載しました。(補足)と記載した内容を、本文最後のところで、ご確認ください。


1. Preppin' Data にチャレンジ やってみた

Preppin' Dataのページを開いてみた

今回は、Preppin' Data 2021Week01 の課題でPrepの操作方法を見ていきます。下記リンク先に課題と解説(Solusion)が掲載されています。ダブルクリックで確認出来ます。

*英文ですが、WEBの翻訳機能などで内容把握出来ます

課題で求められている操作(処理)すべきことが、Requirements として書かれています。まずは、ここに目を通すことからスタート。

Requirements

Here's what we need you to do:

  1. Connect and load the csv file : データを接続する

  2. Split the 'Store-Bike' field into 'Store' and 'Bike' : フィールドを分割する

  3. Clean up the 'Bike' field to leave just three values in the 'Bike' field (Mountain, Gravel, Road) : データの表記揺れを調整する

  4. Create two different cuts of the date field: 'quarter' and 'day of month' : 日付に関するフィールドを作成する

  5. Remove the first 10 orders as they are test values : 最初10件のOrderを除く

  6. Output the data as a csv : CSVファイルを出力する

以上が、やるべき操作内容になります。

データソース(Inputデータ)と回答例(Outputデータ)を確認しよう

データソース(Inputデータ)と回答例(Outputデータ)は、課題のWEBページで次のリンク先が案内されています。まずは、ここからデータをダウンロードしてデータを準備をします。

課題のページでデータソースと解答例のリンクがあります

データソース(Inputデータ)リンク先 :

回答例(Outputデータ)リンク先 :https://drive.google.com/file/d/1GdmDHdpdEIg0iDJ-nQapAl_lAEZQiEO2/view


課題の要求では、回答例(Outputデータ)は、次のフィールドと行数が必要になります。

  • 8 Data Fields

    • Quarter

    • Day of Month

    • Store

    • Bike

    • Order ID

    • Customer Age

    • Bike Value

    • Existing Customer?

  • 990 Rows (991 including Column Headers)

最初に、課題の内容と共に、提示されたデータソース(Inputデータ)と回答例(Outputデータ)を眺めてみます。
ダウンロードしたデータをて、スプシでファイルを確認しました。
上記 Requirements の処理すべきことを念頭に置いてデータをがめると、操作すべきことが具体的に見えてきます。わかりやすい様に、関連があるフィールドを色枠で囲ってみました。

データソース(Inputデータ
回答例(Outputデータ)

2つのファイルを見比べて、青線の [Date] は、[Quarter] と [Day of Month] に関係がありそう、オレンジ線の [Store-Bike] は2つに分けれらている、緑点線は10をしきいとする扱いに要注意、などに気付けばOKと思います。
Prepの操作を始める前に、どの様な操作をすれば良いかが予習的にわかりますね(補足1)。

そろそろPrep使おうよ!

2. Prepを立ち上げ、データ接続をしてみた

前置きはここまでにして、早速Prepを使ってみました!

PCやWEBからPrepを利用出来る環境準備が必要です。今回は、PCアップリケーションで、2025年1月7日にリリースされた2024.3.2版で説明します。バージョンやWEB環境で使い方に若干違いがあるかもしれませんが、ご了承ください。

さあ、Prepを使おう!

データソースに接続する

Prepのデータ接続は 「+」 か 「データに接続」から

起動したPrepで、スタート画面の左上にある 「+」 か 「データに接続」をクリックするとデータを読み込めます。新たに表示される接続先の選択リストから、今回はテキスト ファイルをクリックしてください。

今回は、テキストファイルをクリック

データソースとなるテキストファイルを選んで、Prepに読み込みました。データの接続(読み込み)は、Finderなどのファイル操作画面から、読み込みたいファイルをPrepにドラッグ&ドロップすることでも読み込めます。

データ接続が出来た

データを確認しよう

画面上にでインプットステップの「クリーニングステップ」が薄く表示されています。まずはここをクリックして、接続したデータの内容を確認してみました。

インプットステップで「クリーニングステップ」を表示
フローペインとインプットペインが表示される

インプットペインの下側で、事前にスプシで確認していたデータソースの内容が表示されています。ざっと内容が同じかどうか、見ておきます。
画面上部の灰色、青で表示された棒グラフ状の表示が、各フィールドのデータ概要を示しています。ディメンジョンは存在するデータの内容、メジャーは値の詳細がヒストグラムで見れます。各フィールドの概要把握はここで出来ます、とても便利。また、後ほど操作する各種操作もここから対応可能です。

3. Requirements に従い操作を進めよう

操作を進めて、実際にフローを作成していきます。
今回は、出来る限りPrepのデフォルト機能を利用して作業を進める様にしました。Tipsを使った応用的な作業方法もありますが、そちらは別の機会、記事などをご参照ください(補足2)。

これから操作する1)〜4)項については、それぞれ新たにクリーニングステップを追加する操作を行いフローを作成しています。ステップの右に出ている「+」部分をクリックすると、新たな操作のステップを追加することが出来ます。
今回は、クリーニングステップを都度追加する操作を行います(補足3)。
クリーニングステップの名前は、各ステップの上で右クリックをすると表示される「名前の変更」で操作出来ます。

クリーニングステップの追加操作

1) [Store-Bike] フィールドを分割し、フィールド名を整える

具体的な処理の操作を進めます。
インプットペイン上部にある [Store-Bike] フィールドを見てみます。データに "-" の文字が中央に入っていて、[Store] と [Bike] に分けられる文字が配置されていることが分かります。
"-" の文字を利用して、データを分割することで、[Store] と [Bike] に分けることが出来そうです。

具体的に操作してみます。
インプットペイン上部にある [Store-Bike] フィールド の3点リーダーをクリックするとPrepのデフォルト機能で処置が出来る項目一覧が表示されます。
「値の分割」ー「カスタム分割」を選択します。

「値の分割」ー「カスタム分割」を選択

"-" の文字を利用して、データを分割するために、下図のように入力、選択し、分割を実行します。

カスタム分割の設定

[Store] と [Bike] に相当する [Store - Bike - 分割済み 1] と [Store - Bike - 分割済み 2] の2つのフィールドが作成されました。

[Store - Bike - 分割済み 1] と [Store - Bike - 分割済み 2] の2つのフィールドが作成された

このままだとフィールド名が最終出力のものと合わないため、フィールド名の修正を行います。
3点リーダーをクリックし、「フィールド名を変更」を選択するか、Abcの下にあるフィールド名を直接ダブルクリックすることで、フィールド名を変更出来ます。
それぞれ、[Store] と [Bike] に変更しました。

フィールド名の変更 操作
[Store] と [Bike] に変更出来ました。
ここまでの操作内容が、「変更」として画面左に記載されています。

[Store-Bike] フィールドについては、この先の操作で使うことが無いので、このステップで削除を行なっておきます。上の操作内容に記載があります。

2) [Bike] フィールドの表記揺れを整える

分割後の [Bike] フィールドをよく見ると、データ文字が微妙に違っていることが分かります。実務でも良くある表記揺れ。これを修正します。
Requirementsでは、(Mountain, Gravel, Road)が正しい表記と示されています。

[Bike] フィールド の3点リーダーをクリックし、「値のグループ」ー「スペル」を選択します。

[Bike] フィールド で「値のグループ」ー「スペル」を選択

表記揺れを修正する設定が行える画面が出てきます。
Prepはアルファベットを使った文字列では、そこそこの精度で表記ゆれを自動で修正してくれます。下の画面のグループ化の下にあるスライドバーを左右に調整することで、表記揺れの程度をどのぐらいのレベル感で整えるかを調整出来ます。
今回は、下の画面が表示された最初の設定でRequirementsの (Mountain, Gravel, Road) に上手く分かれていました。このままの設定で操作を進めます。
 *みなさんの操作で整い方が違っていたら、スライドバーで調整してください

表記揺れの調整画面 設定終了したら、画面右上の「完了」を押す

設定通り、3つのデータに整えられました。

スペルで表記揺れを整えた結果

3) 日付関係のフィールドを操作しよう

次は、[Date] のフィールドから、[Quarter] と [Day of Month] を作成します。1つのフィールドから2つのフィールドを作りますが、分割ではなく新しいフィールドを作る「複製」の操作を行います。

最初に[Date] のフィールドを複製して2つのフィールドを作ります。
[Date] フィールドの3点リーダーをクリックし、「フィールドを複製」を選択します。

[Date] フィールド複製

[Date] フィールドが複製されて、[Date-1] フィールドが出来ました。

[Date-1] フィールドが作成(複製)された

2つのフィールドを、[Quarter] と [Day of Month] にフィールド名を変更します。今回は、フィールド名の箇所をダブルクリックしてフィールド名の変更しています。

[Date] フィールドを [Quarter] にフィールド名を変更した
[Date-1] フィールドも操作し、 [Day of Month] フィールドに変更

[Quarter] を四半期の番号を表示するフィールドに変更操作をします(補足2)。
[Quarter] フィールドの3点リーダーをクリックし、「日付の変換」ー「四半期番号」を選択します。

[Quarter] フィールドの3点リーダーをクリックし、
「日付の変換」ー「四半期番号」を選択

操作結果から、[Quarter] フィールドが「四半期番号」に変更されました。

四半期番号が付いた

次に、[Day of Month] を日付のみを表紙するフィールドに変更します。
[Day of Month] フィールドの3点リーダーをクリックし、「日付の変換」ー「月の日付」を選択します。

[Day of Month] フィールドの3点リーダーをクリックし、
「日付の変換」ー「月の日付」を選択
日付がついた

操作結果から、[Day of Month] フィールドが日付の番号に変更されました。

日付に関する操作内容が、「変更」として画面左に記載されています。

日付に関するここでの操作内容が、インプットステップの画面左側に表示されています。操作内容の確認が出来ること、必要に応じ操作の修正や削除もここで対応可能です(補足2)。

だいぶ操作になれたかな?

4) 最初の注文10件を除く操作をしよう (フィルタ操作)

ここまでの1)〜4)操作を、フローでクリーニングステップを追加する形で作業して来ました。フローはこんな感じになっています(補足3)。

4)のクリーニングステップを追加したところ

Prepの操作メリットの1つとして、行った操作を前に戻ってデータの確認、修正をすることが容易であることが挙げられます。
「4)フィルタ」としたステップで注文( [Order ID] )のデータを見てみると、 [Order ID] の番号並び順がバラバラになっているかもしれません。

「1)分割」のステップに戻ってデータの内容を確認しました。
上のフローで、「1)分割」のステップ部分をダブルクリックすると内容が確認出来ます。ここまでの操作で、[Order ID] に関する処理を何もしていないので、「1)分割」と「4)フィルタ」のステップでの[Order ID] の内容は、縦方向の並び順は違えどデータの内容は同じとなります。

「1)分割」のステップで[Order ID] の内容を確認

Requirementsでは、最初の10件分のオーダーはテストのため取り除く要求があります。
「1)分割」ステップで確認したところ、[Oredr ID] のフィールドには、オーダー順に連続する番号がつけられたデータになっています。ここで、[Oredr ID] で1〜10のデータ(レコード、行)を取り除けばいいと考えられます。

最初の10件データを取り除くには、フィルター操作を行います。「4)フィルタ」のステップに戻って、操作をしてみました。

[Order ID] フィールドの3点リーダーをクリックし、「フィルター」ー「値の範囲」を選択します。

[Order ID] フィールドの3点リーダーをクリックし、「フィルター」ー「値の範囲」を選択

表示された画面から、今回は値の範囲として「最小値」タブを選び、「11」を入力し、画面右上の「完了」をクリックします。

「最小値」タブで値を11で入力する

この操作で、フィールドのデータが10行削除されているはずです。

フィールド数がちゃんと減った結果の確認方法としては、この操作前後での行数(レコード数)を比べることで判断が出来ます。
インプットステップの左上に該当データのフィールド数と行数(レコード数)が表示されています。この行数が、上の操作前後で10減っていればフィルターがちゃんと動作したことになります。
操作前後での差異を確認したところ、下の図の通り、行数が1,000行から990行に減っていて、更に課題で求められている行数に一致していることが確認出来ました。

フィルタを実施して行数が1,000行から990行に10行ちゃんと減っている

出力をしてみよう

作成したフローで出来たデータを出力ステップでファイルとして書き出す操作をしてみます。

「4)フィルター」のステップで「+」を押して、表示されたメニューの一番下の方「出力」を選択します。

テップで「+」を押して、表示されたメニューの「出力」を選択
フローに出力ステップが追加される

追加された「出力」のステップをダブルクリックします(補足4)。
表示された設定画面で、「名前」に出力するファイルなどの名称、「場所」にファイルなどを保管する場所(パス)、「出力タイプ」にHyper、Excel、CSVのファイル種類を選択、入力し出力先の設定を行います。

出力の設定画面

出力の設定が完了したら、フローの出力ステップもしくは出力設定画面にある▶️のボタンを押すことで、ファイルへの出力操作が実施されました。

4. 出力データを検証(答え合わせ)してみよう

作成した出力データが正しい内容かどうかを確認しましょう。
いろいろな確認方法があります。今回は、一番簡便に確認操作が出来るフロー上でのOutputデータとのユニオン比較で確認します(補足5)。
今回は、解答例(Outputデータ)と合っていることが確認出来ました。

解答例(Outputデータ)を「4)フィルター」の操作結果にユニオンで繋げる
ユニオン後に「重複行の特定」で差異が無いことを確認

5. まとめ

Preppin‘ Data 2020Week01の課題を例に、Tableau  Prepの操作方法を行ってみました。アーカイブの録画など画面で見るでの分かり易さを好まれる方もいらっしゃると思いますが、今回は書き物として実際の操作をご説明してみました。

Tableau Prepは、データのクリーニングや変形などの前処理を直感的に、効率的に行うための大変良いツールです。Tableau DesktopでのVIz作成だけでなく、実務のデータ整理にも有益です。
みなさまでPrepを利用するにあたり、操作方法の具体例を参考して頂き、Prepをご自分で更に利用して頂けたら嬉しい限りです。


6. 補足です (少しスキルアップのために)

(補足1)Inputデータ、Outputデータ(出力する形式など)の事前確認

実務でPrepを利用して前処理加工を行う際に、Inputデータ内容の確認と、Outputとしてまとめるべきデータの形式や内容を事前確認しておくことはとても重要です。データ処理の仕様(要件定義)に関わる項になりますし、前処理としてどのような操作を進めるかのあたりを付けるためにも重要です。

また、Preppin‘ Dataなどの演習においても、事前にデータを見ておくことで、どのような操作をすべきかPrepを使う前にある程度の予想がつく力も付いてきます。処理のテクニックを増やす意味も勘案し、データの事前確認をされることをお勧めします。

(補足2)計算式、操作の修正削除

今回は、出来るだけPrepのデフォルト機能を利用することで操作を進めました。日付の変更(四半期番号など)は、下の操作で実施しています。

日付の操作内容(再掲)

ここで、「四半期番号」の操作表記の部分をクリックして、表示が出てきた鉛筆マークのアイコンをクリックすると「四半期番号」求めるためにデフォルト機能で作成された計算式を確認することが出来ます。

操作の表示をクリック、計算式の確認・修正が出来る
「フィールドの編集」画面、利用された計算式が分かる

今回は、デフォルト機能をメニューから選択することで「四半期番号」求めていますが、インプットペインの上部に表示されている「計算フィールドの作成」を選び、ここに直接 上と同じ関数を記載しても「四半期番号」求めることが出来ます。
デフォルト機能で作成される関数式と違う内容を記載しても、同様の計算結果が得られるケースもあります。計算式(方法)は1つでは無いので、いろいろな方法を覚えておけると実務で役立ちます。

また、上記の鉛筆マークのアイコンをクリックすることで、計算式の確認・修正が可能です。鉛筆マーク横の「X」を押すことで、計算操作を削除することも出来ます。

(補足3)クリーニングステップの追加

今回の操作では、1)〜4)のクリーニングステップを追加する操作をしています。ステップ毎に操作(処理)をしている内容が分かるようステップ名の記載をしてみました。
後から自分で作成したフローの作業内容が分からなくなることが無いように、Prepに慣れるまではある程度ステップを分けをしてフローを作成することをお勧めします。

なお、今回のブログでは操作の流れを分かりやすくするため、1つ1つの操作を1つの処理のみにして分かりやすくフローを意図的に作成しています。
Prepに慣れてくると、複数の操作を1つに集約させる、上書き処理をするなど有効なTipsを使って効率性、処理速度の向上を求めるケースも出てきます。
この点については、別にブログ内に記載があるTips集などを参照頂ければと思いますが、Prep筋が付いてきたら、フロー内の操作(処理)数やステップ数の集約も考えながらフローを作成してみてください。

(補足4)データの並べ替え処理

「4)フィルター」のステップまで操作した時点で、解答例(Output)のデータ並び順と違うフィールドがあります。例えば、[Order ID] は、小さい順にデータが並んでいません。
説明は省略していますが、今回のフロー作成時に「4)フィルター」のステップでデータの並び替え操作を実施しています。次の計算式を操作を追加しています。

[Order ID] を小さい順にデータ並び替えする計算式

処理の意味や方法については「フィールド数を増やさず並べ替え LOOKUP([Filed],0)」をご参照ください。

(補足5)出力データの確認方法

いろいろな確認方法があります。例として、次の2種方法をご紹介します。別ブログの説明をご参照ください。今回のブログでは、ユニオンを利用する方法を使っています。
 ・Prepフロー上で最終出力内容をユニオン、もしくは結合で確認する方法
   リンク : https://note.com/tableauprep_user/n/ned7665165b8d?sub_rt=share_pw
 ・出力したファイル(Excel、CSV)をExxelで関数を利用して確認する
   リンク : https://note.com/tableauprep_user/n/n6011824f54cd?sub_rt=share_pw

出力するデータ内容の確認は、実務でも重要な作業になります。正しい形式でデータが出力されているか、データの漏れ、抜けは無いかなどデータ品質に関わる内容は確認するように心がけましょう。

いいなと思ったら応援しよう!