カテゴリ: Python 更新日: 2025/12/21

PythonでExcel(xlsx)ファイルを操作する方法!openpyxlとpandas入門

PythonでExcel(xlsx)ファイルを操作する方法(openpyxl / pandas の活用)
PythonでExcel(xlsx)ファイルを操作する方法(openpyxl / pandas の活用)

先生と生徒の会話形式で理解しよう

生徒

「先生、PythonでExcelのデータを読み書きする方法ってありますか?」

先生

「はい、Pythonではopenpyxlpandasというライブラリを使うと簡単にExcelファイル(.xlsx)を操作できます。」

生徒

「openpyxlとpandas、どちらを使えばいいんですか?」

先生

「使う目的によります。openpyxlはセル単位で細かく操作したい場合に便利で、pandasは表形式のデータ処理や分析が得意です。」

生徒

「なるほど。具体的な使い方を見せてもらえますか?」

先生

「では順番に説明していきます。」

1. openpyxlでExcelファイルを読み書きする

1. openpyxlでExcelファイルを読み書きする
1. openpyxlでExcelファイルを読み書きする

openpyxlはPythonでExcelファイルを扱うための公式ライブラリです。セル単位でデータを読み書きしたい場合に便利です。


import openpyxl

# 新しいExcelファイルを作成
wb = openpyxl.Workbook()
sheet = wb.active
sheet['A1'] = "名前"
sheet['B1'] = "年齢"
sheet.append(["太郎", 25])
sheet.append(["花子", 30])
wb.save("sample.xlsx")

# Excelファイルを読み込む
wb2 = openpyxl.load_workbook("sample.xlsx")
sheet2 = wb2.active
for row in sheet2.iter_rows(values_only=True):
    print(row)

ポイント:

  • Workbook()で新しいファイル作成
  • activeでアクティブシートを取得
  • append()で行単位でデータ追加
  • load_workbook()で既存ファイルを読み込み

2. pandasでExcelを表形式で扱う

2. pandasでExcelを表形式で扱う
2. pandasでExcelを表形式で扱う

pandasはデータ分析用のライブラリで、Excelの表をそのままデータフレーム(表形式)として扱えます。


import pandas as pd

# Excelファイルを読み込む
df = pd.read_excel("sample.xlsx")
print(df)

# データを加工
df['年齢'] = df['年齢'] + 1

# Excelファイルに書き込む
df.to_excel("sample_updated.xlsx", index=False)

ポイント:

  • read_excel()でExcelを読み込む
  • データフレーム上で計算やフィルターが可能
  • to_excel()で加工後のデータを保存

3. openpyxlとpandasの使い分け

3. openpyxlとpandasの使い分け
3. openpyxlとpandasの使い分け

まとめると、次のように使い分けます:

  • セル単位で細かく操作したい → openpyxl
  • 表全体を分析したい、列単位の計算をしたい → pandas

4. 実用例:売上データの処理

4. 実用例:売上データの処理
4. 実用例:売上データの処理

Excelで売上データを管理し、年齢に基づいた分析を行う例です。


import pandas as pd

# 売上データを読み込む
df = pd.read_excel("sales.xlsx")
print("読み込んだデータ")
print(df)

# 20歳以上のデータだけ抽出
adult_df = df[df['年齢'] >= 20]

# 結果をExcelに保存
adult_df.to_excel("adult_sales.xlsx", index=False)

5. 注意点

5. 注意点
5. 注意点
  • Excelファイル操作には事前にopenpyxlpandasをインストールする必要があります(pip install openpyxl pandas)。
  • 既存のExcelファイルを上書きする場合は注意してください。バックアップを取ることをおすすめします。
  • データ量が多い場合、pandasの方が高速で効率的です。
カテゴリの一覧へ
新着記事
New1
Python
Pythonでセットの要素数を調べる方法(len()の使い方)を初心者向けに解説!
New2
Python
Pythonのfrozensetとは?ミュータブルなsetとの違いをわかりやすく解説
New3
Flask
FlaskでPOSTリクエストを受け取る方法!初心者でもわかるJSONデータの受け取り方
New4
Python
Pythonでセットを活用してデータをフィルタリングする方法!初心者でもわかるセットの基本と使い方
人気記事
No.1
Java&Spring記事人気No1
Flask
Flaskとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Python
Pythonでトランザクション処理を実装する方法を完全解説!commit・rollbackで安全なSQL操作
No.3
Java&Spring記事人気No3
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.4
Java&Spring記事人気No4
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.5
Java&Spring記事人気No5
Flask
FlaskでAPIを作る基本!初心者向けに仕組みと特徴をやさしく解説
No.6
Java&Spring記事人気No6
Flask
Flask‑RESTfulでREST APIを構築する手順まとめ!初心者向けにやさしく解説
No.7
Java&Spring記事人気No7
Python
Pythonの文字列操作完全ガイド!結合・分割・検索の基本をやさしく解説
No.8
Java&Spring記事人気No8
Flask
FlaskのSQLAlchemyでフィルタリング検索!filter, filter_byの使い方完全ガイド