一般社団法人データサイエンティスト協会から公開されているデータサイエンス100本ノック 構造化データ加工編のウィークリーチャレンジ方式による出題第16回目は84問目~86問目を一つにまとめてみました。今回は複合問題、空間問題です。
P-084: 顧客データ(customer.csv)の全顧客に対して全期間の売上金額に占める2019年売上金額の割合を計算し、新たなデータを作成せよ。ただし、売上実績がない場合は0として扱うこと。そして計算した割合が0超のものを抽出し、結果を10件表示せよ。また、作成したデータに欠損が存在しないことを確認せよ。
※結果は、customer.csvのレコード順に出力すること
※全期間の売上金額を「amount_all」、2019年の売上金額を「amount_2019」、売上割合を「amount_rate」とすること
P-085: 顧客データ(customer.csv)の全顧客に対し、郵便番号(postal_cd)を用いてジオコードデータ(geocode.csv)を紐付け、新たな顧客データを作成せよ。ただし、1つの郵便番号(postal_cd)に複数の経度(longitude)、緯度(latitude)情報が紐づく場合は、経度(longitude)、緯度(latitude)の平均値を算出して使用すること。また、作成結果を確認するために結果を10件表示せよ。
※結果はcustomer_idの昇順で出力すること
P-086: 085で作成した緯度経度つき顧客データに対し、会員申込店舗コード(application_store_cd)をキーに店舗データ(store.csv)と結合せよ。そして申込み店舗の緯度(latitude)・経度情報(longitude)と顧客住所(address)の緯度・経度を用いて申込み店舗と顧客住所の距離(単位:km)を求め、顧客ID(customer_id)、顧客住所(address)、店舗住所(address)とともに表示せよ。計算式は以下の簡易式で良いものとするが、その他精度の高い方式を利用したライブラリを利用してもかまわない。結果は10件表示せよ。
緯度(ラジアン):ϕ
経度(ラジアン):λ
距離L=6371∗arccos(sinϕ1∗sinϕ2+cosϕ1∗cosϕ2∗cos(λ1−λ2))
※結果はcustomer_idの昇順に並べて出力すること
※距離を計算した結果のフィールド名は「distance」とすること
解いたらこちらに投稿していただければと思います。ちなみに、次回投稿は一週間後を予定しています。
solutionファイルは次回添付します。
添付ファイルは今回の出題のstartファイルと、前回のsolutionファイルです。
前回:データサイエンス100本ノック 構造化データ加工編をAlteryxでやってみる(79問目~83問目:欠損値処理編)