2
0

【Python】集計に便利なピボットテーブルを紹介!

Posted at

Pythonで、よく使う外部ライブラリの「pandas」にピボットテーブルという便利な機能があります。集計の際に使うと便利だな~と思い、今回は、簡単に使い方を紹介したいと思います!!

集計したい内容
各担当者がどのお弁当を何個売ったか、
そしてそれに伴うお渡し品(マヨネーズ、ソース、しょうゆ)のお渡し数を集計します。

今回は、以下のデータを基に集計を行います。

1. データの準備

まず、提供されたデータを整理して、Pythonのデータフレームに変換します。

import pandas as pd

# データをリスト形式で整理
data = {
    '日付': [
        '2024-08-01', '2024-08-01', '2024-08-01', 
        '2024-08-01', '2024-08-01', '2024-08-01', 
        '2024-08-02', '2024-08-02', '2024-08-02', 
        '2024-08-02', '2024-08-02', '2024-08-02', 
        '2024-08-03', '2024-08-03', '2024-08-03', 
        '2024-08-03', '2024-08-03', '2024-08-03'
    ],
    '担当': [
        '担当A', '担当A', '担当B', 
        '担当B', '担当C', '担当C', 
        '担当A', '担当A', '担当B', 
        '担当B', '担当C', '担当C', 
        '担当A', '担当A', '担当B', 
        '担当B', '担当C', '担当C'
    ],
    '弁当': [
        'からあげ弁当', '幕の内弁当', 'とんかつ弁当', 
        '幕の内弁当', 'とんかつ弁当', '幕の内弁当', 
        'とんかつ弁当', '幕の内弁当', 'からあげ弁当', 
        'とんかつ弁当', 'からあげ弁当', 'とんかつ弁当', 
        'からあげ弁当', 'とんかつ弁当', 'とんかつ弁当', 
        '幕の内弁当', 'からあげ弁当', 'とんかつ弁当'
    ]
}

# データフレームに変換
df = pd.DataFrame(data)

# お渡し品の対応を追加
df['お渡し品'] = df['弁当'].map({
    'からあげ弁当': 'マヨネーズ', 
    'とんかつ弁当': 'ソース', 
    '幕の内弁当': 'しょうゆ'
})

print(df)

2. 担当者ごとの弁当販売数の集計

次に、担当者ごとに各弁当の販売数を集計します。

# 担当者ごとの弁当販売数を集計
pivot_bento_sales = df.pivot_table(
    index='担当', 
    columns='弁当', 
    aggfunc='size',
    fill_value=0
)

print(pivot_bento_sales)

3. 担当者ごとのお渡し品の集計

同様に、担当者ごとのお渡し品の集計も行います。

# 担当者ごとのお渡し品の集計
pivot_watashi_sales = df.pivot_table(
    index='担当',
    columns='お渡し品',
    aggfunc='size',
    fill_value=0
)

print(pivot_watashi_sales)

4. 結果の出力

上記を実行すると、以下のような結果が出力されます。

◆各担当者ごとの弁当販売数の集計結果
image.png

◆各担当者ごとのお渡し品の集計結果
image.png

このようにまとめて集計を行うのにピボットテーブルはとても便利です!

2
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
2
0