データサイエンス100本ノックをAlteryxで。28日目(解答)

100本ノック

このページは解答編です。

↓ネ

↓タ

↓バ

↓レ

↓防

↓止

答えと解説

設問はこちらでした。

P-028: レシート明細データ(receipt.csv)に対し、店舗コード(store_cd)ごとに売上金額(amount)の中央値を計算し、降順でTOP5を表示せよ。

解答ワークフローは以下のようになります。

27問目との違いは、平均ではなく中央値を取ることです。27問目と異なる部分だけ色を付けて解説していきたいと思います。平均値ではなく中央値を使う場合というのは、中央値の方が外れ値に強い、ということになります。

今回は、店舗コードごとの売上金額の中央値を計算後、降順でTop5を取得する、とのことですが、今まで行ってきた内容で十分解ける問題です。基本的には、以下のように解いていきます。

  1. 型を適切に変更する
  2. 店舗コードごとにグループ化して中央値を取る
  3. 並べ替える
  4. 5件取得する

まず、型を変更しましょう。基本的にセレクトツールで行います。なお、amountはInt16型になります。ついでに不要なフィールドも削除しておきます。

次に集計ツールを使って、店舗コードごとにグループ化して中央値を取りましょう。

次にソートツールで並べ替えます。単純に先ほど取得したamountの中央値(ここでは、「Median_amount」としています。)に対して、降順でソートします。

最後に、サンプリングツールで先頭から5件取得します。つまり、N=5とします。

次に、フィルターツールで取得した最大値、最小値が異なるかどうかを判定します。

もちろん、レコード選択ツールで1-5レコードを取得しても問題ありません。

まとめ

今回は、集計の問題でした。基本的に集計後は並べ替えたり、TopNを取ったりということが多いかと思います。よく使う手法ですので慣れておきましょう。

解答ワークフローダウンロード

コメント

タイトルとURLをコピーしました