データを再構築する
学習の目的
この単元を完了すると、次のことができるようになります。
- データの再構築方法の選択肢を特定する。
- データをピボットすることの目的について説明する。
- データを分割することの目的について説明する。
はじめに
これまでに、高品質で有意義なデータの特徴を認識することで、「良い」なデータを識別する方法を学習しました。ですが、データが適切に構造化されていない場合はどうすればよいでしょうか? この単元では、ピボットの使用や変数 (フィールド) の分割など、データを再構築するためのいくつかの選択肢について説明します。
データを再構築ための選択肢
データの再構築に使用できる選択肢には次のものがあります。
- 参照元のデータベースの変更
- R や Python などのプログラミング言語の使用
- Tableau プラットフォーム (Tableau Prep Builder、Tableau Desktop など) 内におけるデータのピボットや分割などのツールの使用
- その他の ETL (抽出、変換、読み込み) ツールの使用
場合によっては、実際のデータを変更する代わりに、データについて説明しているメタデータをカスタマイズします。メタデータには、計算、名前を変更したフィールド、既定の形式などの情報を含めることができます。また、メタデータにはデータの構造に対する変更の履歴を含めることもできます。
復習: 適切に構造化されたデータ
適切に構造化されたデータを整理する方法についてこのモジュールで先ほど学んだことを再考してみましょう。
- それぞれの変数は列ヘッダー付きの 1 つの列に入っている。
- その変数の観測値はそれぞれ個別の行に入っている。
先ほどは、次のシンプルな表を取り上げました。このデータは適切に構造化されています。変数はベンダー、都市、州です。この 3 つの変数はそれぞれ、列ヘッダー付きの個別の列に入っています。各行には変数 (フィールド) の観測値 (値) が並んでいます。この場合はベンダー名と場所 (都市と州) がこれに該当します。
ベンダー |
都市 |
州 |
---|---|---|
Polly’s Lollipops |
プレストン |
WA |
Lucy’s Lollies |
ランシング |
MI |
Carlo Callazo’s Candy |
ケンブリッジ |
MA |
Ming’s Minty Meringues |
マディソン |
WI |
データが適切に構造化されていない場合は、データセットを分析に利用できるようにするために、データ準備作業をいくつか行う必要があります。
形式に問題のあるデータを適切に構造化されたデータに変換するための一般的なタスクとしては、次のようなものがあります。
- 列を行にピボットする (またはその逆)
- フィールドの分割
ピボットとは?
簡単に言うと、ピボットでは列を行に変換します。場合によってはその逆の変換を行うこともあります。
ピボットは、「横長」のデータセット、つまり情報が複数の列で示されいて、さらに、その複数の列に類似した情報が含まれている場合に使用します。こうした構造はおそらくユーザーレポートには便利かもしれませんが、分析にはあまり役立ちません。たとえば、Tableau Desktop は、「縦長/細長い」表構造になっているデータの分析で最も力を発揮します。
従業員が支払った駐車料金を列挙した次の表について考えてみましょう。各従業員の行にそれぞれの日付のフィールド (列) が設けられています (2020/2/5、2020/2/6 など)。
従業員 |
2/5/2020 |
2/6/2020 |
2/7/2020 |
2/8/2020 |
2/9/2020 |
---|---|---|---|---|---|
Christine |
10 |
10 |
10 |
10 |
10 |
Tristan |
10 |
||||
Lily |
10 |
10 |
|||
Jamal |
10 |
10 |
このデータ構造を Tableau Desktop などのツールに取り込むと、それぞれの列に対してフィールドが作成されます。5 つのフィールドはすべて、その日に支払われた駐車料金を表しています。これでは、データが別々のフィールドに格納されているため、時間をまたいだ分析が非常に困難です。フィールド (変数) の従業員、日付、駐車料金には個別の列を設けて、列のヘッダーを付ける必要があります。各行には値 (変数の観測値) を並べる必要があります。この場合の値は、従業員の名前、日付、支払われた駐車料金です。
ピボットの処理を行った後、次の表に示されているように、適切なデータ構造が得られます。すべての日付の値が 1 つの列に表示されているため、このデータを時系列で傾向を見ながら分析できるようになりました。
従業員 |
日付 |
駐車料金 |
---|---|---|
Christine |
2/5/2020 |
10 |
Christine |
2/6/2020 |
10 |
Christine |
2/7/2020 |
10 |
Christine |
2/8/2020 |
10 |
Christine |
2/9/2020 |
10 |
Tristan |
2/5/2020 |
10 |
Lily |
2/5/2020 |
10 |
Lily |
2/9/2020 |
10 |
Jamal |
2/5/2020 |
10 |
Jamal |
2/7/2020 |
10 |
分割とは?
簡単に言うと、分割は、複数の情報を含む 1 つの列を複数の列に分割して、その分割した列にそれぞれ 1 つの情報が含まれるようにすることです。
また、分割では、区切り文字に基づいて文字列 (テキスト) フィールドの値を分割します (区切り文字とは、カンマ、コロン、ハイフンなど、フィールド値の内部で特定の情報間に挿入されている文字のことを指します)。分割は、フィールドの構成要素にデータの分析に使用できるような意味がある場合に便利です。
次の例では、航空会社フィールドには航空会社名と 2 文字の航空会社コードが値として含まれています。この 2 種類の情報の間にあるコロンは区切り文字です。
航空会社 |
---|
American Airlines: AA |
Delta Airlines: DL |
JetBlue Airways: B6 |
United Airlines: UA |
分割後の表では、分割された列に航空会社名と航空会社コードが別々に含まれています。これで、このデータを航空会社コードで分析することが容易になりました。
航空会社 |
航空会社コード |
---|---|
American Airlines |
AA |
Delta Airlines |
DL |
JetBlue Airways |
B6 |
United Airlines |
UA |
ここでは、データの特性と整理や、データを再構築するための選択肢 (ピボット、フィールドの分割など) について学習しました。
次の表を使用して 1 つ目のテスト問題に答えてください。
都市 | 州 | Q1 | Q2 | Q3 | Q4 |
---|---|---|---|---|---|
サンフランシスコ |
カリフォルニア |
$25,465 |
$15,389 |
$19,268 |
$28,491 |
ニューヨーク |
ニューヨーク |
$42,543 |
$39,642 |
$41,687 |
$44,594 |
シアトル |
ワシントン |
$38,756 |
$32,174 |
$33,452 |
$39,892 |