データサイエンス100本ノックでSQLとPythonを勉強していきます。
S-030: レシート明細テーブル(receipt)に対し、店舗コード(store_cd)ごとに売上金額(amount)の標本分散を計算し、降順でTOP5を表示せよ。
SQLでは以下のようになります。
SELECT store_cd, var_pop(amount) as vars_amount FROM receipt GROUP BY store_cd ORDER BY vars_amount desc LIMIT 5
標本分散は統計学などで出てくる用語のようでした。
しばらく実務で使うことはないと思うのでちょっと概要見るぐらいにしておきました。
Pythonでは以下のようになります。
df_receipt.groupby('store_cd').amount.var(ddof=0).reset_index(). \ sort_values('amount', ascending=False).head(5)