0
0

More than 3 years have passed since last update.

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

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

Youtube

動画解説もしています。

問題

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

解答

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

出力

store_cd amount
28 S13052 402.867470
12 S13015 351.111960
7 S13003 350.915519
30 S14010 348.791262
5 S13001 348.470386

解説

・PandasのDataFrame/Seriesを使用します。
・同じ値を持つデータをまとめて処理し、同じ値を持つデータの合計や平均などを確認したい時に使用します。
'groupby'は、同じ値や文字列を持つデータをまとめて、それぞれの同じ値や文字列に対して、共通の操作(合計や平均など)を行いたい時に使います。
'.amount.mean()'は、amountの平均値を表示させます。
'.reset_index()'は、'groupby'によってバラバラになったインデックス番号を0始まりの連番に振り直す操作を行いたい時に使います。
'.sort_values('amount', ascending=False)'で'amount'を降順に表示しています。

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

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