Challenge #28: Formatting Morningstar Data ~同列に日付とクラスを含むデータの整形~ – Alteryx Weekly Challenge
こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。
当エントリは『Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018』の4日目です。
- Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018 - Qiita
- Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018 | シリーズ | Developers.IO
『Alteryx Weekly Challenge:Intermediate Level Advent Calendar 2018』では、Alteryx Communityで公開されているWeekly ChallengeのIntermediate Levelにひたすら1人で挑戦していきます。
今回は同列に日付とクラスを含むデータの整形に挑戦します。
動作環境
当エントリの執筆には、以下の環境を利用しています。
- Windows 10 Pro
- Alteryx Designer 2018.4.3.54046 英語版
Challenge #28: Formatting Morningstar Data
お題
今回挑戦するお題はこちら。
「Input」側のデータはこちら。
「Output」側のデータはこちら。
「Output」側のデータには、「Date」「ShareClass」列があります。この2つの列は、「Input」側では「American Funds Fixed Income Funds Daily Mstar/Lipper Blended Percent Ranks」列に含まれるデータのようです。
解答の概要
今回作成するワーフクローは以下の通りです。
- Sample、RegEx、Selectツールで「Date」列の準備
- Multi-Row Formulaツールで「ShareClass」列の準備
- Append Fieldsツールで2つのデータを結合
- Filter、Dynamic Rename、Selectツールで不要なデータの削除と列名の修正
「Date」列の準備
まずは「Date」列を準備します。
Sampleツール(Preparation -> Sample)を使用して、日付が含まれている初めの1行を抽出します。 First N rows を選択し、 N = 1
を設定します。
RegExツール(Parse -> RegEx)を使用して、不要な文字を削除します。 Field to Parse に対象の列、 Regular Expression に 「Ranks as of 」
、Output Method に Replace
を設定します。
Selectツール(Preparation -> Select)を使用します。日付が含まれる列以外は不要なので削除し、日付が含まれる列は名前を「Date」に変更します。
これで「Date」列の準備ができました。
「ShareClass」列の準備
続いて「ShareClass」列を準備します。
Multi-Row Formulaツール(Preparation -> Multi-Row Formula)を使用して、「ShareClass」列を作成します。
作成する列には、以下の条件でデータを出力します。
if isnull([F2]) then [American Funds Fixed Income Funds Daily Mstar/Lipper Blended Percent Ranks] else [Row-1:ShareClass] endif
- 「F2」列がNullの場合は「American Funds Fixed Income Funds Daily Mstar/Lipper Blended Percent Ranks」列を出力
- それ以外の場合は1つ上の「ShareClass」列を出力
これで「ShareClass」列の準備ができました。
データの結合と調整
2つのデータを結合し、不要なデータの削除と列名の調整を行います。
まずはAppend Fieldsツール(Join -> Append Fields)を使用して2つのデータを結合します。この時点では列の削除などは行っていません。
Filterツール(Preparation -> Filter)を使用して、「F2」列がNullではないデータのみ抽出します。
Dynamic Renameツール(Developer -> Dynamic Rename)を使用して、「Date」「ShareClass」列以外の列の名前を、各列の初めにあるデータに置き換えます。 Rename Mode に Take Field Names from First Row of Data
を指定し、「Date」「ShareClass」列の選択を外します。
Selectツールを使用して、「Field_17」「Field_17_2」「Field_17_3」列を削除します。また、「TNA Latest」列を「TNA」列に名前を変更します。
ワークフローを実行して結果を確認。完成です。
最後に
今回はWeekly ChallengeのChallenge #28: Formatting Morningstar Dataに挑戦しました。
明日もお楽しみに!
サンプルワークフローのご案内
クラスメソッドでご契約のユーザー様向けに、当ブログでご紹介したワークフローを専用ポータルにて公開しております。当エントリでご紹介したワークフローも公開予定ですので、ご参考にしていただきますと幸いです。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。