こんにちは、truestarしょーたまです。
突然ですがみなさん、普段生活をしていて
あ~、
特定のディメンションの値を名前に持たせた
メジャー群を作成 したいなあ~
と思うことはありませんでしょうか。僕は時々あるんです。
具体的には、下のイメージのような感じです。
元々「区分」で縦持ちしていた"西日本","東日本"という値を、「売上」「費用」といったカラム名に付けた、横に長い形式ですね。
機械学習にかけるための特徴量生成などの場面でこういった形式の需要が出てくるかと思います。
今回はこの加工の流れを、Exploratoryというツールで行う場合の手順について、備忘も兼ねて共有してみます。
コンセプトとしては他ツールやプログラミング言語でも流用できるものかと思います。
前提として、
Exploratoryのステップ作成の操作は知っている
+
現状のデータをExploratoryにインポートできた、というところから、スタートします。
もし「Exploratoryとは…?」と思われた方は
https://blog.truestar.co.jp/exploratory/20200905/40462/
こちらの記事や、公式サイトを参照ください。
1. 現状のテーブルを確認
先ほども確認した通り、4行×5列のテーブルです。
売上、費用、利益それぞれ1列ずつしか持っていませんね。これを 2行×7列に出来たら今回のゴールです ^ ^
2. ワイド型からロング型へ
まずは下ごしらえとしてこのような形式にします。
一時的に元テーブルよりレコード数が多くなりますので「期間」や「地域」に相当する値の組み合わせが多い場合には、重い処理になるかもしれません。
具体的な手順としては、「新規ステップを作成」から、ワイド型からロング型へを選択します。
ワイド型 = 横持ち
ロング型 = 縦持ち
と読み替えると、何をするか理解しやすくなりますかね。
その後の選択では、今持っているメジャー(数値カラム)を、すべて選択、
もしくは「全ての数値列」を選択しても同じ結果になります。
3. 複数の列をつなげる
前のステップと一見変わらないように見えますが、
「地域」「key」のカラムが結合され、ひとつになっています。(ここまでくると、次のステップが想像つく方も多いのではないでしょうか)
具体的な手順としては、「新規ステップを作成」から、 複数の列を1つにする を選択します。
その後の選択では、結合したい「key」と「地域」を選択します。
今回は元の列も不要になるので、元の列を消す は 「TRUE」にしてしまいましょう。
4. ロング型からワイド型へ
これが最後の手順です。
え、せっかくわざわざロング型にしたのに…と思われるかと思いますが、
一見遠回りに見えるこのステップが、実は最短経路なんですね☆_☆
「新規ステップを作成」から、 ロング型からワイド型へ を選択します。
その後が重要なのですが、キー列に「united_colunm」(前ステップで2列結合したフィールド)
値の列に「Value」を設定します。
おわり
以上で、念願のテーブル形式が完成しました。
ステップとしては
データのインポート+3ステップ でできます。
こうしてやってみると簡単なのですが、
・売上、費用…などのメジャーごとにブランチを作成し、
・ブランチごとに、単純にロング型変換し、
・リネームしつつ、JOIN…
のような魔工程を踏んでしまうパターンも見受けられたので、そういったデータ加工でお困りの方へもお役に立てれば幸いです ^ ^
※TableauなどのBIでは、この記事でいう ロング型 が求められる場面も多いかなと思います。
その場合は本記事の流れを逆にたどって頂ければご期待の加工ができるかと思います!