Pythonでは、Excelファイルの入出力を外部ライブラリを用いて行います。なかでもよく用いられるのが「openpyxl」と「pandas」です。
openpyxlとpandasの違い
「openpyxl」と「pandas」の違いは、それぞれのライブラリが目指す目標にあります。
- 「openpyxl」はExcelの標準規格でファイルを読み書きするためのライブラリです。罫線、フォント、背景色などの書式も含めて、Excelファイルをそのまま読み書きできます。
- 一方、「pandas」は配列をベースとしたデータ操作・分析のためのライブラリです。Excelシートは表形式のデータなので、pandasで読み込むと「DataFrame」というオブジェクトが作成され、データはその中に2次元配列として収められます。
pandasのDataFrameをopenpyxlで書き込む
pandasで処理したデータを、書式付きのExcelファイルに書き込みたい場合は、保存のときだけ「openpyxl」を使います。以下にその例を示します。
import openpyxl
from openpyxl.utils.dataframe import dataframe_to_rows
wb = openpyxl.load_workbook(file_path)
ws = wb.create_sheet(title=sheet_name)
ws.append(['Date', 'Open', 'Close', 'High', 'Low'])
for i, row in enumerate(dataframe_to_rows(df, header=False)):
if i == 0:
continue
ws.append(row)
wb.save(file_path)
このコードは、pandasのDataFrameからデータを取得し、それを新しいExcelシートに書き込むものです。
以上、PythonでExcel操作を行う際の「openpyxl」と「pandas」の使い方について解説しました。これらのライブラリを適切に使い分けることで、PythonでのExcel操作がより効率的になります。