pandas でデータフレーム操作

Python × Excel で自動化

日付:2025年3月9日

Pythonとpandasを使ってExcelデータを効率的に集計・分析する方法を解説します。フィルタリング、ソート、集計、ピボットテーブルの作成など、実践的なデータ操作を学びましょう。

目 次

1. はじめに

pandasを活用して Excel データを集計・分析する方法を解説します。

2. 環境準備

まずは、pandas をインストールしておきましょう。

BASH
pip install pandas openpyxl

必要なライブラリの説明

  • pandas: Excel データを表形式(DataFrame)で扱い、効率的に分析できる。
  • openpyxl: pandas が Excel データを読み書きするために必要。

3. Excel データを DataFrame に読み込む

Excel データは、以下のような形式を想定します。

商品名価格在庫数
りんご10050
みかん12040
バナナ8060
ぶどう20030
もも15020

Python でこの Excel データを DataFrame に読み込みます。

PYTHON
import pandas as pd # Excelデータを読み込む df = pd.read_excel("sample.xlsx", engine='openpyxl') # データの表示 print(df)

実行結果

商品名 価格 在庫数 0 りんご 100 50 1 みかん 120 40 2 バナナ 80 60 3 ぶどう 200 30 4 もも 150 20

4. データの基本操作

4.1 列の選択

特定の列だけを抽出することができます。

PYTHON
print(df["商品名"])

実行結果

0 りんご 1 みかん 2 バナナ 3 ぶどう 4 もも Name: 商品名, dtype: object

解説
この方法を使うと、特定の列だけを抽出して分析することができます。

4.2 データのフィルタリング

価格が 100 円以上の商品を抽出。

PYTHON
filtered_df = df[df["価格"] >= 100] print(filtered_df)

実行結果

商品名 価格 在庫数 0 りんご 100 50 1 みかん 120 40 3 ぶどう 200 30 4 もも 150 20

解説
df[df["価格"] >= 100] のように書くことで、条件を満たすデータだけを抽出できます。

4.3 ソート(並び替え)

価格の昇順・降順で並び替え。

PYTHON
# 昇順 print(df.sort_values(by="価格"))

実行結果

商品名 価格 在庫数 2 バナナ 80 60 0 りんご 100 50 1 みかん 120 40 4 もも 150 20 3 ぶどう 200 30

解説
デフォルトでは昇順(小さい順)に並び替えられます。

PYTHON
# 降順 print(df.sort_values(by="価格", ascending=False))

実行結果

商品名 価格 在庫数 3 ぶどう 200 30 4 もも 150 20 1 みかん 120 40 0 りんご 100 50 2 バナナ 80 60

解説
ascending=False を指定することで、降順(大きい順)に並び替えられます。

5. データの集計

5.1 合計値・平均値の計算

価格と在庫数の合計や平均を計算。

PYTHON
print("価格の合計:", df["価格"].sum()) print("価格の平均:", df["価格"].mean()) print("在庫数の合計:", df["在庫数"].sum())

実行結果

価格の合計: 650 価格の平均: 130.0 在庫数の合計: 200

5.2 グループ化して集計

PYTHON
# カテゴリ列を追加 df["カテゴリ"] = ["果物", "果物", "果物", "果物", "果物"] # カテゴリごとの平均価格 category_mean = df.groupby("カテゴリ")["価格"].mean() print(category_mean)

実行結果

カテゴリ 果物 130.0 Name: 価格, dtype: float64

解説
groupby を使うと、特定のカテゴリごとに集計ができます。

6. ピボットテーブルを作成

pandas で Excel のピボットテーブルのような集計を行うことができます。

PYTHON
pivot_table = df.pivot_table(values="価格", index="商品名", aggfunc="sum") print(pivot_table)

実行結果

価格 商品名 りんご 100 みかん 120 バナナ 80 ぶどう 200 もも 150

解説
pivot_table を使うことで、エクセルのピボットテーブルのような集計が可能になります。

7. 集計データを Excel に書き出す

PYTHON
# フィルタリングしたデータをExcelに保存 filtered_df.to_excel("filtered_output.xlsx", index=False, engine='openpyxl')

解説
データの集計結果を Excel ファイルとして保存し、レポート作成や共有に活用できます。

8. まとめ

  • pandas を使うと、Excel のデータを簡単にフィルタリング・ソート・集計できる。
  • groupbypivot_table を使えば、より高度な集計が可能。
  • 集計したデータを Excel に保存することで、レポート作成がスムーズに。

データ分析の効率を上げるために、ぜひ pandas の活用を試してみてください。