Python【前処理】補習塾

【Excel操作のイメージでPandas前処理④】◯◯ごとに集計(合計・平均・カウント)

Python【前処理】補習塾
【基本データ】(基本情報・リスト)
product_list …商品名と値段の2列、メニュー表みたいなもの。
list_2021 …顧客リスト。登録順につけたIDと、企業名・所在地・電話番号・アドレス・業種を記録している。
【記録データ】
202107_list …日々の販売記録。購入日・ID・商品・合計支払金額を記録しており、毎日新しい行が下に追加される。(商品ごとに記録していたが、個数を記録していない)

今回やりたいことは、次のとおりです。
①企業ごとの売上金額を集計したい。(合計、平均)
④その他、平均とか色々と見てみたい。

◯◯ごとに集計する

ひと通りデータは出揃いましたので、まず「IDごとに集計」してみます。「◯◯ごとに集計」するには、「.groupby(by=”列名”)」を使います。中身の(by=”列名”)の部分で、何で集計するのかを列名で指定します。

IDごとの「合計値」を見る

goupby()は最後の部分で、集計方法を指定します。今回は『合計値』なので、「.sum()」と付け足します。

# IDごとに集計した結果をdf_id_sumに入れる
df_id_sum = df_01_1.groupby(by="ID").sum()

# 確認
df_id_sum.head()

「◯◯ごとに集計」するには、「.groupby(by=”列名”)」を使います。中身の(by=”列名”)の部分で、何で集計するのかを列名で指定します。

IDごとに合計値が出てきました。これを見ると『単価』列もしっかりと合計されていますので、この列は不要ですね。
見ずらい場合は「.drop(columns=[])」で削除してしまっても良いでしょう。

 

IDごとの平均値を見る

今度は『平均値』で見てみます。先ほどは「.sum()」で合計でしたが、平均値の場合はこれを「.mean()」に変えるだけです。
そして、ついでに『単価』の列は見ても仕方がないことが分かりましたので、この『単価』列は削除してしまいましょう。

# IDごとに集計した結果をdf_id_meanに入れる
df_id_mean = df_01_1.groupby(by="ID").mean().drop(columns=["単価"])

# 確認
df_id_mean.head()

計算方法の部分を「.mean()」に変えるだけで、平均値が算出されました。
そして、後ろに続けて「.drop(columns=[“単価”])」をつけることで、.groupby()と同時に列の削除も実行できることがわかりました。

 

商品ごとの「出現回数(count)」を見る

今度は『商品ごとに何回出ているのか』を見てみます。『何回出ているか(出現しているか)』は各商品が登場している回数をカウントすれば良いので、集計の部分を「.count()」に変えます。

# 商品ごとにカウント数を出す
df_syohin_count = df_01_1.groupby(by="商品").count()

# 確認
df_syohin_count.head()

「.count()」により、何回出ているのかが分かりました。ただ、今回は単に商品A~Eが何回出ているかだけ表示できれば良いので、他の情報が邪魔ですね。
そこで、『商品』を購入した『ID』数だけに絞って表示させましょう。

# 商品ごとのカウントdf_syohin_countのうち『ID』列のみ表示
df_syohin_count["ID"]

これで見た目がスッキリしました。

 

 

【プログラミング入門書ランキング】

 

コメント

タイトルとURLをコピーしました