2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2022-06-25

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

流れは、次の通りです。

  • 1. CSVデータを入手
  • 2. PythonでPandasのpivot_table関数を使ってクロス集計。
     集計結果はcsv形式で出力する。
  • 3. 実行する
  • 4. 集計結果を確認する

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

1. CSVデータの入手

テストとして適当にcsvデータを作成しています。

  • test.csv
    スクリーンショット 2022-06-25 13.55.44.png

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. 集計結果を確認

  • output.csv
    スクリーンショット 2022-06-25 13.58.16.png

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

以上になります。

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


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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?