動的選択 (Dynamic Select) ツール活用事例

こんにちは。藤です。

少し間が空いてしまいましたが、2019年4月17日に行われた 第7回 Tokyo Alteryx User Group の Alteryx Doctor コーナーでの解決策として使われた 動的選択 (Dynamic Select) ツール を改めて説明したいと思います。

その前に、当時の様子は Developers.IO のブログにもありますのでご参考までに。

 

Alteryx Doctor で私が助けを求めたのは、e-stat で『地図で見る統計(統計GIS)』として共有されている国勢調査の『年齢(5歳階級、4区分)別、男女別人口』に関するテキストファイルでした。

 リンク

 

このテキストファイルはなかなかオシャレなフォーマットでして、Alteryxで1行目をカラム名として開くとこんな感じです。

 

どの辺がオシャレかと言うと、

という感じで、1行目に数値データの日本語のカラム名に相当する情報が含まれています。

まるで Data Prep 能力を試されているかのような作りですね。

 

という訳で、私が最初に作ったものは以下のような形のフローでした。

最初の行もデータとしていったん読み込んだ上で、サンプル (Sample) ツールを用いてカラム名用とデータ用に分離し、カラム名は必要なもののみをそれぞれの列から選択して フィールド付加 (Append Field) ツールで1行に集約します。それを 動的リネーム (Dynamic Rename) ツールでいったんデータをカラム名に、もう一度 動的リネーム (Dynamic Rename) ツールで、別のデータのカラム名として採用します。

 

そうすると

目的とした形には一応整形されます。

 

しかしながら、Alteryx のワークフローが余りにも不細工なので、もっと良い方法があるのではと思い、Alteryx Doctor に持ち掛けたところ、同僚の Kenny さんが見事に解消してくれました。

 

改善後のフローは以下のような感じです。

データ入力 (Input Data) ツールと 閲覧 (Browse) ツールを除くと、私のフローが7つのツールを使用したのに対し、こちらはわずか4つです。ツールが少なければ必ず良いという訳でもないですが、明らかにこちらの方がシンプルで分かりやすいですね。

 

改善後のフローを簡単に解説します。

あらためて、フィールド情報 (Field Info) ツールを使ってローデータの構造を見てみると、人口データが含まれるカラム名は、T00xxxxというように、一定のルールに沿ってコードが振られていました。

 

その特徴から、動的選択 (Dynamic Select) ツールを2つ用いてそれぞれ処理を行っています。

KEY_CODE は後で JOIN するためのキーとして別扱いにし、まずはそれ以外は “T00” で始まらない列を選択。

 

続いて、KEY_CODE と “T00” で始まる列を選択。

 

“T00” で始まるデータ側については、KEY_CODEを除き、1行目をカラム名に使用します。

あとは KEY_CODE で JOIN して完了です。

 

お見事でした。

 

私はおそらくこれまで 動的選択 (Dynamic Select) ツールを使ったことが無かったので、この発想は全くありませんでしたが、このツールの他の機能としては、特定のデータ型のみ抽出することなどもできます。使えるシーンがとても多いように感じました。

 

動的リネーム (Dynamic Rename) ツールや動的入力 (Dynamic Input) ツールも含め、どうして『開発者』カテゴリにひっそりと格納されているのか謎ですが、とりあえず星をポチっとしておきました。

 

皆さんも是非お試しあれ。

それではまた。

 

※どこからどう見ても truestar の フジ と Kenny によるサクラ演出では無いかという感じでしたが、決してそんなことはありませんでしたので。念のため。