Challenge #45: Parsing Bureau of Labor Data ~労働局のデータのパース~ – Alteryx Weekly Challenge

2019.04.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。

Alteryx Communityで公開されているWeekly Challengeに挑戦するシリーズ。今回は労働局のデータのパースに挑戦します。

動作環境

当エントリの執筆には、以下の環境を利用しています。

  • Windows 10 Pro
  • Alteryx Designer 2019.1.4.57073 英語版

Challenge #45: Parsing Bureau of Labor Data

お題

今回挑戦するお題はこちら。

お題

Input側のデータはこちら。URLのみ用意されています。

Input

Output側のデータはこちら。Input側にあるURLからデータを取得し、Output側のデータになるように処理していきますが、URLから取得できるデータが異なるため、2つのカテゴリーと年、月の列を用意することで解答にしたいと思います。

Output

解答のワークフロー全体

作成するワークフローはこちら。

ワークフロー全体

データの取得

Downloadツールを使用して「Field1」列のURLからデータを取得します。

Downloadツールの結果

取得したデータは「DownloadData」列に出力されます。

Downloadツール

Selectツールで「Field1」列と「DownloadHeaders」列を削除してから、Text To Columnsツールを使用して「DownloadData」列のデータを分割していきます。Delimiters\n指定して改行でデータを分け、Sptil to rowsを指定して同じ列に出力します。

Text To Columns

分割したデータは以下のようになっています。

分割結果

列の作成

Data Cleansingツールを使用してデータを整えてから、Multi-Row Formulaツールを使用して、「Employment Category」列と「Category」列をV_WString型で作成します。まずは「Employment Category」列。

Employment Categoryを作る

Expressionには以下のとおり設定しています。

IIF((IsEmpty([Row-1:DownloadData]) AND IsEmpty([Row+1:DownloadData])), [DownloadData], [Row-1:Employment Category])
  • 「DownloadData」列の1行上と1行下が空欄の場合は「DownloadData」を出力
  • それ以外の場合は1行上の「Employment Category」を出力

「Category」列はこちら。

Categoryを作る

Expressionには以下のとおり設定しています。

IIF(Contains([Row+1:DownloadData], "YEAR"), [DownloadData], [Row-1:Category])
  • 「DownloadData」列の1行上に「YEAR」が含まれる場合は「DownloadData」を出力
  • それ以外の場合は1行上の「Category」を出力

RegExツールを使用して、スペースをカンマに置き換えます。スペースが連続している場合があるため、Regular Expressionには\s+と指定します。Replacement Text,を指定します。

スペースをカンマに

処理した結果はこちら。スペースがカンマに置き換えられています。

カンマに変換されたデータ

Text To Columnsツールを使用して、「DownloadData」列をカンマで分割します。Delimiters,を指定します。また、今回はカンマごとに異なる列に出力するためSplit to columnsを指定し、Number of columns13を指定します。

カンマで分割

処理した結果はこちら。右側に1や2などの数字の列名で出力されています。

分割結果

出力の調整

RegExツールを使用して、残すデータと削除するデータを分類します。Field to Parseに「1」列、Regular Expression(\d\d\d\d)Output MethodMatchを指定します。

分類

処理した結果はこちら。条件に合致するデータには「True」、合致しないデータには「False」が出力されています。なお、「1」列のデータがNullであった場合は結果もNullになっています。

分類結果

Filterツールを使用して、「True」になっているデータの抽出します。

フィルター

最後にSelectツールで列の名前の修正と不要な列の削除をして、完成です。

完成

最後に

今回はChallenge #45: Parsing Bureau of Labor Dataに挑戦しました。

サンプルワークフローのご案内

クラスメソッドでご契約のユーザー様向けに、当ブログでご紹介したワークフローを専用ポータルにて公開しております。当エントリでご紹介したワークフローも公開予定ですので、ご参考にしていただきますと幸いです。

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400