Home » Python » xlwingsの使い方 » xlwingsでseabornのデータセットをExcelに出力する

xlwingsでseabornのデータセットをExcelに出力する

動作検証バージョン:Windows 11 Home + Python 3.10.6(64-bit) + xlwings 0.30.9 + 64bit Excel バージョン2311(ビルド16926.20000クイック実行)ベータチャネル

Power Queryを使って取得したseabornのデータセットから、Python in Excelを使ってペアプロットを作成する手順をご紹介しています。

この例のような場合、Power Queryを使ってデータを取得するよりも、PythonのスクリプトをJupyterなどで実行するほうが、便利そうです。

拙著『Excel VBAユーザーのためのPythonプログラミング入門』で基本を解説している「xlwings」を使って、seabornのデータセットをExcelに出力するスクリプトを作ってみました。

seabornのデータセットをExcelに出力するスクリプト

以下のスクリプトを実行すると、フィッシャーのアヤメデータが、Excelの新規ブックに「iris」という名前のテーブルとして出力されます。

import xlwings as xw
import seaborn as sns

DS_NAME = 'iris'
df = sns.load_dataset(DS_NAME)

bk = xw.Book()
ws = bk.sheets.active
ws['A1'].options(index=False).value = df
ws.tables.add(source=ws['A1'].expand(), name=DS_NAME)

スクリプトで行っている処理

DataFrameをExcelに出力するだけならば、xlwings.view関数を使った

xw.view(df)

の1行だけで済んでしまうのですが、この場合DataFrameのインデックス列も出力されてしまうので、その調整が必要になります。そのため上記のスクリプトでは

bk = xw.Book()
ws = bk.sheets.active
ws['A1'].options(index=False).value = df
ws.tables.add(source=ws['A1'].expand(), name=DS_NAME)

としています。

新規ブックの作成とアクティブシートの取得

新規ブックを作成して、アクティブなワークシートを取得する

bk = xw.Book()
ws = bk.sheets.active

の部分は、拙著でも解説しているとおりです。

DataFrameをExcelに出力

DataFrameをExcelに出力する

ws['A1'].options(index=False).value = df

の部分は、このサイト「インストラクターのネタ帳」で過去に解説しています。

セル範囲をテーブルに変換

最後に出力したデータを、xlwingsのTables.addメソッドでExcelのテーブルに変換しています。その際、テーブルの名前をseabornのデータセットと同じ名前にしています。

ws.tables.add(source=ws['A1'].expand(), name=DS_NAME)

データセットの指定

seabornのデータセット名を指定している最初のほうの行

DS_NAME = 'iris'

の右辺を変更してやれば、他のデータセットでも一発でExcelに読み込めます。

最終更新日時:2023-10-13 13:59

[スポンサードリンク]

Home » Python » xlwingsの使い方 » xlwingsでseabornのデータセットをExcelに出力する

「xlwingsの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.