Pythonでピボットテーブルを作成し、Excelに出力する方法

この記事は約5分で読めます。
スポンサーリンク

データ分析や集計作業に欠かせない「ピボットテーブル」。Excelでの操作が一般的ですが、Pythonを使えば大量データの自動処理や再現性の高い集計が可能です。本記事では、Pythonでピボットテーブルを作成し、Excelファイルとして出力する手順を、具体的なコード例とともに解説します。

ピボットテーブルとは?

ピボットテーブルは、データをさまざまな切り口(行・列・値)で集計・要約できる強力な分析ツールです。例えば、売上データを「地域」や「商品」ごとに集計したい場合などに活用されます。

Pythonでのピボットテーブル作成方法

Pythonでは主に2つの方法があります。

  • Pandasライブラリを使った方法(手軽・高速)
  • Excel操作専用ライブラリを使った方法(Excel上でのピボットテーブルそのものを生成)

ここでは、実務でよく使われるPandasによる方法を中心に、Excelファイルへの出力までを解説します。

Pandasでピボットテーブルを作成

Pandasのpivot_table()メソッドを使えば、簡単にピボットテーブルを作成できます。

import pandas as pd

# データの読み込み
df = pd.read_csv('sales_data.csv')

# ピボットテーブルの作成
pivot_table = df.pivot_table(
    index='Region',           # 行方向の集計キー
    columns='Product',        # 列方向の集計キー
    values='Sales',           # 集計対象の値
    aggfunc='sum'             # 集計方法(合計)
)

print(pivot_table)

この例では、「Region(地域)」ごとに「Product(商品)」の「Sales(売上)」を合計しています。

ピボットテーブルをExcelに出力

作成したピボットテーブルは、to_excel()メソッドで簡単にExcelファイルに書き出せます。

# ピボットテーブルをExcelにエクスポート
pivot_table.to_excel('sales_pivot_table.xlsx', sheet_name='集計結果')
  • sheet_nameでシート名を指定可能
  • index=Falseで行ラベル非表示など、書式も柔軟に設定できます。

さらに高度なExcelピボットテーブルを作りたい場合

Pandasで出力したExcelは通常の表形式ですが、「Excelのピボットテーブル機能」と同じインタラクティブな集計表を作りたい場合は、Spire.XLSAspose.Cellsなどの専用ライブラリを利用します。

Spire.XLSを使った例

from spire.xls import Workbook, AxisTypes, PivotBuiltInStyles, SubtotalTypes

workbook = Workbook()
workbook.LoadFromFile("Sample.xlsx")
sheet = workbook.Worksheets.get_Item(0)
dataRange = sheet.Range.get_Item("A1:E119")
pivotCache = workbook.PivotCaches.Add(dataRange)
pivotTable = sheet.PivotTables.Add("販売分析", sheet.Range.get_Item("G2"), pivotCache)

# 行・列・値フィールドの追加
rowField = pivotTable.PivotFields.get_Item("地域")
rowField.Axis = AxisTypes.Row
colField = pivotTable.PivotFields.get_Item("商品")
colField.Axis = AxisTypes.Column
dataField = pivotTable.PivotFields.get_Item("売上")
pivotTable.DataFields.Add(dataField, "売上合計", SubtotalTypes.Sum)

pivotTable.CalculateData()
pivotTable.BuiltInStyle = PivotBuiltInStyles.PivotStyleLight2
workbook.SaveToFile("output/Excelピボットテーブル.xlsx")
workbook.Dispose()

この方法なら、Excel上で自由に並べ替えや集計方法の変更ができるピボットテーブルを生成できます。

まとめ

  • Pandasなら、手軽にピボットテーブルを作成し、Excelファイルに出力可能
  • Excelのピボットテーブル機能そのものをPythonから使いたい場合は、Spire.XLSやAspose.Cellsなどのライブラリが便利
  • Pythonによる自動化で、大量データの集計作業も効率化できる

コメント

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