LoginSignup
1
2

More than 3 years have passed since last update.

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

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

Youtube

動画解説もしています。

問題

P-033: レシート明細データフレーム(df_receipt)に対し、店舗コード(store_cd)ごとに売上金額(amount)の平均を計算し、330以上のものを抽出せよ。

解答

コード
df_receipt.groupby('store_cd').amount.mean().reset_index().query('amount >= 330')

出力

store_cd amount
1 S13001 330.19413
5 S14011 348.470386
7 S13003 350.915519
8 S13004 330.943949
12 S13015 351.11196
16 S13019 330.208616
17 S13020 337.879932
28 S13052 402.86747
30 S14010 348.791262
31 S14011 335.718333
38 S14026 332.340588
46 S14045 330.082073
48 S14047 330.077073

解説

・Pandasを使用します。今まで使用したことのあるコードを用います。
'groupby'は、同じ値や文字列を持つデータをまとめて、それぞれの同じ値や文字列に対して、共通の操作(合計や平均など)を行いたい時に使います
'.amount.mean()'は、amountの平均値を表示させます
'.reset_index()'は、'groupby'によってバラバラになったインデックス番号を0始まりの連番に振り直す操作を行いたい時に使います
・'.query()で条件を指定しています。

※こちらのコードでも同様の結果を出力します

コード
df_receipt.groupby('store_cd').agg({'amount':'mean'}).reset_index().query('amount >= 330')
1
2
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
1
2