0
0

More than 3 years have passed since last update.

【Python】データサイエンス100本ノック(構造化データ加工編) 031 解説

Posted at
  • データサイエンス100本ノックをやりきる会を作りました🎉
  • こちらのSlack招待URLからご参加ください!!
  • ぜひ一緒に励まし合いながら、データサイエンス100本ノックをやり切りたいと思っています!

Youtube

動画解説もしています。

問題

P-031: レシート明細データフレーム(df_receipt)に対し、店舗コード(store_cd)ごとに売上金額(amount)の標本標準偏差を計算し、降順でTOP5を表示せよ。

解答

コード
df_receipt.groupby('store_cd').amount.std(ddof=0).reset_index().sort_values('amount', ascending=False).head(5)

出力

store_cd amount
28 S13052 663.391816
31 S14011 553.456916
42 S14034 544.903736
5 S13001 543.536561
12 S13015 543.409938

解説

・PandasのDataFrame/Seriesにて、同じ値を持つデータをまとめて処理し、同じ値を持つデータの合計や平均などを確認したい時に使用します。
'groupby'は、同じ値や文字列を持つデータをまとめて、それぞれの同じ値や文字列に対して、共通の操作(合計や平均など)を行いたい時に使います
'<列名>.std(ddof=0)'は、標本標準偏差を算出する際に'N-ddof(=0)'で割ることを指します
・'.reset_index()'は、'groupby'によってバラバラになったインデックス番号を0始まりの連番に振り直す操作を行いたい時に使います。
・'.sort_values('amount', ascending=False)'で'amount'を降順に表示しています。**

※こちらのコードでは不偏標準偏差を出力します。不偏標準偏差の場合は、'ddof=1'となります。

コード
df_receipt.groupby('store_cd').agg({'amount':'std'}).reset_index().sort_values('amount', ascending=False).head(5)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0