Python Pandasのピボットテーブル関数を使ってクロス集計してみる

***今回はPandasのピボットテーブル関数(pivot_table)を日次の製品販売データ(csvファイル)をクロス集計してみます。クロス集計では日付に対して各製品ごとに合計値を出しています。***

:::note info 
**流れは、次の通りです。**
- **1. CSVデータを入手**
- **2. PythonでPandasのpivot_table関数を使ってクロス集計。
　集計結果はcsv形式で出力する。**
- **3. 実行する**
- **4. 集計結果を確認する**
:::

では実際にやっていきます。

## 1. CSVデータの入手
テストとして適当にcsvデータを作成しています。

- test.csv
![スクリーンショット 2022-06-25 13.55.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2075298/1c2c7775-8599-4a1b-a563-a033f694df9a.png)


## 2. PythonでPandasのpivot_table関数を使ってクロス集計。集計結果はcsv形式で出力する。
下記用意したPythonコードです。
- **ファイル名：pivot.py**
```Python:pivot.py
import pandas as pd  # Pandasライブラリを読み込む
# ファイル名pcr_case_daily.csvをカンマ区切りで読み込む
df = pd.read_csv('./test.csv',sep=',' ,index_col=0 ,parse_dates=True)

# 読み込んだデータをpivot_table関数でクロス集計する。集計対象は個数で合計値を出す。
df_pivot  = pd.pivot_table(df, index='Date', columns='Product', values='Amount', aggfunc=sum)
# 結果の数字で小数点以下を省略
df_pivot_out = df_pivot.applymap('{:,.0f}'.format) 
#小数点を省いた結果をCSVファイルで出力
df_pivot_out.to_csv('output.csv')
```


## 3. 実行する
```
$ python3 pivot.py
```
実行後output.csvが出力された。
```
$ ls -lh output.csv 
-rw-rw-r-- 1 ishimatsu ishimatsu 99 Jun 25 13:36 output.csv
```

## 4. 集計結果を確認
- output.csv
![スクリーンショット 2022-06-25 13.58.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2075298/1f06773b-8eea-00b8-58eb-1468ef359ad6.png)

 結果ファイルを開き、クロス集計されていることがわかりました。


以上になります。

Pandasのpivot_table関数を使うことで容易にクロス集計することできました。
この情報が皆様の何かにお役立てれることができれば幸いです。

<table border="0" cellpadding="0" cellspacing="0"><tr><td><div style="border:1px solid #95a5a6;border-radius:.75rem;background-color:#FFFFFF;width:504px;margin:0px;padding:5px;text-align:center;overflow:hidden;"><table><tr><td style="width:240px"><a href="https://hb.afl.rakuten.co.jp/ichiba/14f168ca.485dc5c9.14f168cb.b3e40f57/_RTLink71449?pc=https%3A%2F%2Fproduct.rakuten.co.jp%2Fproduct%2F-%2Fae770ef9c5aa402d410516fc252474c8%2F&link_type=picttext&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0dGV4dCIsInNpemUiOiIyNDB4MjQwIiwibmFtIjoxLCJuYW1wIjoicmlnaHQiLCJjb20iOjEsImNvbXAiOiJkb3duIiwicHJpY2UiOjAsImJvciI6MSwiY29sIjoxLCJiYnRuIjoxLCJwcm9kIjoxLCJhbXAiOmZhbHNlfQ%3D%3D" target="_blank" rel="nofollow sponsored noopener" style="word-wrap:break-word;"  ><img src="https://hbb.afl.rakuten.co.jp/hgb/14fd8852.00a017ee.14fd8853.823bacf4/?me_id=1213310&item_id=20185382&pc=https%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fbook%2Fcabinet%2F3669%2F9784798063669.jpg%3F_ex%3D240x240&s=240x240&t=picttext" border="0" style="margin:2px" alt="" title=""></a></td><td style="vertical-align:top;width:248px;"><p style="font-size:12px;line-height:1.4em;text-align:left;margin:0px;padding:2px 6px;word-wrap:break-word"><a href="https://hb.afl.rakuten.co.jp/ichiba/14f168ca.485dc5c9.14f168cb.b3e40f57/_RTLink71449?pc=https%3A%2F%2Fproduct.rakuten.co.jp%2Fproduct%2F-%2Fae770ef9c5aa402d410516fc252474c8%2F&link_type=picttext&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0dGV4dCIsInNpemUiOiIyNDB4MjQwIiwibmFtIjoxLCJuYW1wIjoicmlnaHQiLCJjb20iOjEsImNvbXAiOiJkb3duIiwicHJpY2UiOjAsImJvciI6MSwiY29sIjoxLCJiYnRuIjoxLCJwcm9kIjoxLCJhbXAiOmZhbHNlfQ%3D%3D" target="_blank" rel="nofollow sponsored noopener" style="word-wrap:break-word;"  >Pythonプログラミング逆引き大全 400の極意 [ 金城俊哉 ]</a></p><div style="margin:10px;"><a href="https://hb.afl.rakuten.co.jp/ichiba/14f168ca.485dc5c9.14f168cb.b3e40f57/_RTLink71449?pc=https%3A%2F%2Fproduct.rakuten.co.jp%2Fproduct%2F-%2Fae770ef9c5aa402d410516fc252474c8%2F&link_type=picttext&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0dGV4dCIsInNpemUiOiIyNDB4MjQwIiwibmFtIjoxLCJuYW1wIjoicmlnaHQiLCJjb20iOjEsImNvbXAiOiJkb3duIiwicHJpY2UiOjAsImJvciI6MSwiY29sIjoxLCJiYnRuIjoxLCJwcm9kIjoxLCJhbXAiOmZhbHNlfQ%3D%3D" target="_blank" rel="nofollow sponsored noopener" style="word-wrap:break-word;"  ><img src="https://static.affiliate.rakuten.co.jp/makelink/rl.svg" style="float:left;max-height:27px;width:auto;margin-top:0"></a><a href="https://hb.afl.rakuten.co.jp/ichiba/14f168ca.485dc5c9.14f168cb.b3e40f57/_RTLink71449?pc=https%3A%2F%2Fproduct.rakuten.co.jp%2Fproduct%2F-%2Fae770ef9c5aa402d410516fc252474c8%2F%3Fscid%3Daf_pc_bbtn&link_type=picttext&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0dGV4dCIsInNpemUiOiIyNDB4MjQwIiwibmFtIjoxLCJuYW1wIjoicmlnaHQiLCJjb20iOjEsImNvbXAiOiJkb3duIiwicHJpY2UiOjAsImJvciI6MSwiY29sIjoxLCJiYnRuIjoxLCJwcm9kIjoxLCJhbXAiOmZhbHNlfQ==" target="_blank" rel="nofollow sponsored noopener" style="word-wrap:break-word;"  ><div style="float:right;width:41%;height:27px;background-color:#bf0000;color:#fff!important;font-size:12px;font-weight:500;line-height:27px;margin-left:1px;padding: 0 12px;border-radius:16px;cursor:pointer;text-align:center;">楽天で購入</div></a></div></td></tr></table></div><br><p style="color:#000000;font-size:12px;line-height:1.4em;margin:5px;word-wrap:break-word"></p></td></tr></table>