データサイエンス100本ノックで勉強(31)

データサイエンス100本ノックでSQLPythonを勉強していきます。

github.com

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

f:id:JunpeiNakasone:20220221051618p:plain 標本分散は統計学などで出てくる用語のようでした。

risalc.info

しばらく実務で使うことはないと思うのでちょっと概要見るぐらいにしておきました。

Pythonでは以下のようになります。

df_receipt.groupby('store_cd').amount.var(ddof=0).reset_index(). \
        sort_values('amount', ascending=False).head(5)

f:id:JunpeiNakasone:20220221051840p:plain