Pythonはデータ分析において強力なツールであり、分析結果を外部ツールに渡して利用することも簡単に行えます。その中でも、Excelはデータの共有や報告に非常に適したフォーマットです。本記事では、Pythonで分析したデータをExcelに出力する方法を、具体的なコード例を交えながら解説します。
[目次を開く]
1. 必要なライブラリのインストール
PythonでExcelファイルを操作するには、以下のライブラリを使用します。
- pandas: データ操作の標準ライブラリ
- openpyxl: Excelファイルの読み書きを行うライブラリ(pandasが内部で利用)
- xlsxwriter(オプション): Excelファイルを高度にカスタマイズする場合に利用
これらのライブラリがインストールされていない場合、以下のコマンドでインストールしてください。
pip install pandas openpyxl xlsxwriter
2. 分析データの準備
ここでは、簡単なデータフレームを作成して分析データとして使用します。
import pandas as pd
# サンプルデータの作成
data = {
"Month": ["January", "February", "March", "April"],
"Sales": [25000, 32000, 28000, 35000],
"Profit": [5000, 8000, 7000, 9000]
}
df = pd.DataFrame(data)
print(df)
3. 基本的なExcelファイルへの出力
pandasのto_excel
メソッドを使えば、データフレームを簡単にExcelファイルとして出力できます。
# Excelファイルに出力
df.to_excel("output.xlsx", index=False, engine="openpyxl")
print("データが 'output.xlsx' に保存されました。")
上記のコードでは、インデックス列を含めない設定(index=False
)で出力しています。また、engine="openpyxl"
を指定することで、openpyxlを使用しています。
4. 出力内容のカスタマイズ
(1) シート名の変更
複数のシートにデータを保存したい場合や、特定の名前のシートを作成したい場合は以下のようにします。
with pd.ExcelWriter("custom_output.xlsx", engine="openpyxl") as writer:
df.to_excel(writer, sheet_name="SalesData", index=False)
print("カスタムシート名で保存されました。")
(2) フォーマットの指定
xlsxwriter
を使用すると、セルのフォーマットをカスタマイズできます。
with pd.ExcelWriter("formatted_output.xlsx", engine="xlsxwriter") as writer:
df.to_excel(writer, sheet_name="Summary", index=False)
# ワークブックとワークシートのオブジェクトを取得
workbook = writer.book
worksheet = writer.sheets["Summary"]
# フォーマットの設定
currency_format = workbook.add_format({"num_format": "$#,##0"})
worksheet.set_column("B:B", 15) # Sales列の幅を調整
worksheet.set_column("C:C", 15, currency_format) # Profit列のフォーマット設定
(3) グラフの追加
データとともにグラフを含めたExcelファイルを作成することも可能です。
import xlsxwriter
# グラフ付きのExcel出力
with pd.ExcelWriter("graph_output.xlsx", engine="xlsxwriter") as writer:
df.to_excel(writer, sheet_name="Data", index=False)
# ワークブックとワークシートの取得
workbook = writer.book
worksheet = writer.sheets["Data"]
# グラフの作成
chart = workbook.add_chart({"type": "line"})
chart.add_series({
"name": "Sales",
"categories": ["Data", 1, 0, 4, 0], # X軸 (1行目, 0列目から4行目, 0列目まで)
"values": ["Data", 1, 1, 4, 1], # Y軸 (1行目, 1列目から4行目, 1列目まで)
})
chart.set_title({"name": "Monthly Sales"})
chart.set_x_axis({"name": "Month"})
chart.set_y_axis({"name": "Sales Amount"})
# グラフをシートに挿入
worksheet.insert_chart("E5", chart)
5. 実用例
以下は、分析データを整理し、Excelファイルとして保存する実用例です。
売上データの集計と出力
# 売上データの月別合計
summary = df.groupby("Month").sum()
# 集計データをExcelに出力
summary.to_excel("sales_summary.xlsx", engine="openpyxl")
print("売上データの集計結果が 'sales_summary.xlsx' に保存されました。")
まとめ
Pythonを使えば、データの分析結果を簡単にExcel形式で保存し、視覚的なレポートとして他者と共有できます。pandas
の基本機能を活用するだけでも十分ですが、xlsxwriter
を使ったフォーマット設定やグラフ追加により、より見栄えの良いファイルを作成できます。ぜひ試してみてください!