今回はPandasのピボットテーブル関数(pivot_table)を日次の製品販売データ(csvファイル)をクロス集計してみます。クロス集計では日付に対して各製品ごとに合計値を出しています。
流れは、次の通りです。
- 1. CSVデータを入手
- 2. PythonでPandasのpivot_table関数を使ってクロス集計。
集計結果はcsv形式で出力する。 - 3. 実行する
- 4. 集計結果を確認する
では実際にやっていきます。
1. CSVデータの入手
テストとして適当にcsvデータを作成しています。
2. PythonでPandasのpivot_table関数を使ってクロス集計。集計結果はcsv形式で出力する。
下記用意したPythonコードです。
- ファイル名:pivot.py
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. 集計結果を確認
結果ファイルを開き、クロス集計されていることがわかりました。
以上になります。
Pandasのpivot_table関数を使うことで容易にクロス集計することできました。
この情報が皆様の何かにお役立てれることができれば幸いです。
|