一般社団法人データサイエンティスト協会から公開されているデータサイエンス100本ノック 構造化データ加工編のウィークリーチャレンジ方式による出題第8回目は39問目~45問目を一つにまとめてみました。今回は集計・データ結合・レコード間処理で様々な種類の問題が多いかと思います。
P-039: レシート明細データ(receipt.csv)から、売上日数の多い顧客の上位20件を抽出したデータと、売上金額合計の多い顧客の上位20件を抽出したデータをそれぞれ作成し、さらにその2つを完全外部結合せよ。ただし、非会員(顧客IDが"Z"から始まるもの)は除外すること。
※出力データの並びは、売上日数の降順かつ、売上金額の降順、顧客IDの昇順でソートすること
※同一数の場合はcustomer_idの小さな方を採用する
P-041: レシート明細データ(receipt.csv)の売上金額(amount)を日付(sales_ymd)ごとに集計し、前回売上があった日からの売上金額増減を計算せよ。そして結果を10件表示せよ。
P-042: レシート明細データ(receipt.csv)の売上金額(amount)を日付(sales_ymd)ごとに集計し、各日付のデータに対し、前回、前々回、3回前に売上があった日のデータを結合せよ。そして結果を10件表示せよ。
※過去の売り上げ情報が不足する最初の3回分は最終結果から取り除くこと
P-043: レシート明細データ(receipt.csv)と顧客データ(customer.csv)を結合し、性別コード(gender_cd)と年代(ageから計算)ごとに売上金額(amount)を合計した売上サマリデータを作成せよ。性別コードは0が男性、1が女性、9が不明を表すものとする。
ただし、項目構成は年代、女性の売上金額、男性の売上金額、性別不明の売上金額の4項目とすること(縦に年代、横に性別のクロス集計)。また、年代は10歳ごとの階級とすること。
P-044: 043で作成した売上サマリデータ(sales_summary)は性別の売上を横持ちさせたものであった。このデータから性別を縦持ちさせ、年代、性別コード、売上金額の3項目に変換せよ。ただし、性別コードは男性を"00"、女性を"01"、不明を"99"とする。
※売上がNullのデータは除く
※最終のデータは、年代の昇順、性別コードの昇順に並べること
解いたらこちらに投稿していただければと思います。ちなみに、次回投稿は一週間後を予定しています。
solutionファイルは次回添付します。
添付ファイルは今回の出題のstartファイルと、前回のsolutionファイルです。
前回:データサイエンス100本ノック 構造化データ加工編をAlteryxでやってみる(33問目~38問目:データ抽出・データ結合編)
毎回ありがとうございます。以下回答いたします。
40問目
41問目
42問目
43問目
44問目
当初、性別コードの変換はFormulaツールで場合分けしてセットしようかと思いましたが
変換テーブルを外出しした方が見やすいので Find Replace ツールを使うことにしました。
45問目
解答つくりました!