PythonでExcelファイルを読み書き (openpyxl, pandas)
この記事では、Pythonでopenpyxlとpandasライブラリを使ってExcelファイルを読み書きする方法を説明します。基本的な操作から、データの整形、高度な機能まで、様々な例を通して解説します。
目次
openpyxlを使ったExcelファイルの読み書き
openpyxlは、Excelファイルの読み書きに特化したライブラリです。セル単位での操作に適しています。
from openpyxl import Workbook, load_workbook
# 新しいExcelファイルを作成
wb = Workbook()
ws = wb.active
ws['A1'] = 'Hello'
ws['B1'] = 'world!'
wb.save('hello.xlsx')
# 既存のExcelファイルを読み込む
wb = load_workbook('hello.xlsx')
ws = wb.active
print(ws['A1'].value) # 出力: Hello
print(ws['B1'].value) # 出力: world!
# セルの値を変更して保存
ws['A1'] = 'Python'
wb.save('hello.xlsx')
openpyxlでは、シートへのアクセスやセルの操作を容易に行えます。ワークブックオブジェクト、シートオブジェクト、セルオブジェクトを操作することで、Excelファイルの内容を自由に編集できます。
- openpyxlは、xlsxファイルに対応しています。xlsファイルには対応していません。
- 大規模なExcelファイルの処理には、pandasライブラリの方が効率が良いです。
pandasを使ったExcelファイルの読み書き
pandasは、データ分析に特化したライブラリです。DataFrameというデータ構造を使って、Excelファイル全体を効率的に読み書きできます。
import pandas as pd
# Excelファイルを読み込む
df = pd.read_excel('hello.xlsx')
print(df)
# DataFrameをExcelファイルに書き込む
df = pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]})
df.to_excel('pandas_example.xlsx', index=False)
pandasは、データの読み込みと書き込みを高速に行うことができます。また、データの整形や分析も容易に行えます。
- pandasは、xlsxファイルとxlsファイルの両方に対応しています。
- データの読み込み時に、エンコーディングを指定する必要がある場合があります。
openpyxlとpandasの比較
openpyxlとpandasは、それぞれExcelファイルの操作に適したライブラリです。openpyxlはセル単位の操作に適しており、pandasはデータ分析に適しています。用途に応じて使い分けることが重要です。
エラー処理と例外処理
Excelファイルの読み書きでは、ファイルが存在しない、アクセス権限がないなどのエラーが発生する可能性があります。try-exceptブロックを使ってエラー処理を行うことが重要です。
import pandas as pd
try:
df = pd.read_excel('nonexistent.xlsx')
except FileNotFoundError:
print('ファイルが見つかりません')
except Exception as e:
print(f'エラーが発生しました: {e}')
関連記事
- PythonでCSVファイルを読み書き(csv)
- PythonでJSONファイルを読み書き(json)
- Pythonでpickleを使ってオブジェクトをシリアライズ・デシリアライズ
- Pythonでファイルを読み込む(read, readline, readlines)
- Pythonでファイルに書き込む(write, writelines)
- Pythonでファイルを開く・閉じる(open, close)
- Pythonでファイルを追記モードで開く
- Pythonでファイルの上書き・削除
- Pythonでファイル・ディレクトリの存在確認(os.path.exists, os.path.isfile, os.path.isdir)
- PythonでConfigファイルを読み書き (configparser)