アルアカ - Arcadia Academia

Arcadia Academiaは「エンジニアリングを楽しむ」を合言葉に日本のデジタル競争力を高めることをミッションとするテックコミュニティです。

Pythonで分析したデータをExcelに出力する方法

Featured image of the post

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を使ったフォーマット設定やグラフ追加により、より見栄えの良いファイルを作成できます。ぜひ試してみてください!

学習を進める中で不安があれば、プロのメンターに相談してみませんか?
無料カウンセリングを試してみる

あなたを爆速で成長させるメンタリングプログラムはこちらから↓↓

転職ボックス|IT/ゲーム業界の正社員求職者の集客の無料会員登録↓↓