pythonでエクセルシート別にデータ保存

実践Data Scienceシリーズ RとStanではじめる ベイズ統計モデリングによるデータ分析入門 (KS情報科学専門書)

シート別にデータを保存したエクセルファイルの作成方法について

(本ページにて紹介しているコードはgithubにて公開しています。)

DataAnalOji.hatena.sample/python_samples/blog_save_excel_sheets.ipynb at master · Data-Anal-Ojisan/DataAnalOji.hatena.sample
samples for my own blog. Contribute to Data-Anal-Ojisan/DataAnalOji.hatena.sample development by creating an account on GitHub.

openpyxlのインストール

Excel操作のための「openpyml」パッケージを仮想環境にインストールしておく。

$ pip install openpyxl

以下データをシート別に保存するための処理

パッケージのインポート

# エクセル処理
import openpyxl
# 数値処理
import numpy as np
import pandas as pd
# サンプルデータ
from sklearn.datasets import load_boston, load_breast_cancer

サンプルデータの読み込み

# インスタンスの生成
boston = load_boston()
cancer = load_breast_cancer()

# データフレームの作成
df_boston = pd.DataFrame(boston.data, columns=boston.feature_names)
df_cancer = pd.DataFrame(cancer.data, columns=cancer.feature_names)

シートごとにデータをエクセルファイルに書き込み

# 空のワークブックを作成
workbook = openpyxl.Workbook()
# ワークブックをエクセルファイルとして保存
workbook.save('sample.xlsx')
# 作成したエクセルファイに対してExcelWriterを利用して書き込み
with pd.ExcelWriter('sample.xlsx') as writer:
    df_boston.to_excel(writer, sheet_name='boston')
    df_cancer.to_excel(writer, sheet_name='cancer')

補足:forループ内でシート別に書き込む場合

writer = pd.ExcelWriter('sample.xlsx')

for i, data in enumerate([boston, cancer], 0):

    # データフレームの作成
    df = pd.DataFrame(data.data, columns=data.feature_names)
    # シート別にデータフレームを書込み
    df.to_excel(writer, sheet_name='sheet_'+str(i))

# エクセルファイルを保存
writer.save()

実践Data Scienceシリーズ RとStanではじめる ベイズ統計モデリングによるデータ分析入門 (KS情報科学専門書)

コメント