PythonでExcel(xlsx)ファイルを操作する方法!openpyxlとpandas入門
先生と生徒の会話形式で理解しよう
生徒
「先生、PythonでExcelのデータを読み書きする方法ってありますか?」
先生
「はい、Pythonではopenpyxlやpandasというライブラリを使うと簡単にExcelファイル(.xlsx)を操作できます。」
生徒
「openpyxlとpandas、どちらを使えばいいんですか?」
先生
「使う目的によります。openpyxlはセル単位で細かく操作したい場合に便利で、pandasは表形式のデータ処理や分析が得意です。」
生徒
「なるほど。具体的な使い方を見せてもらえますか?」
先生
「では順番に説明していきます。」
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を表形式で扱う
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の使い分け
まとめると、次のように使い分けます:
- セル単位で細かく操作したい →
openpyxl - 表全体を分析したい、列単位の計算をしたい →
pandas
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. 注意点
- Excelファイル操作には事前に
openpyxlやpandasをインストールする必要があります(pip install openpyxl pandas)。 - 既存のExcelファイルを上書きする場合は注意してください。バックアップを取ることをおすすめします。
- データ量が多い場合、
pandasの方が高速で効率的です。