Power Queryを使って取得したseabornのデータセットから、Python in Excelを使ってペアプロットを作成する手順をご紹介しています。
この例のような場合、Power Queryを使ってデータを取得するよりも、PythonのスクリプトをJupyterなどで実行するほうが、便利そうです。
拙著『Excel VBAユーザーのためのPythonプログラミング入門』で基本を解説している「xlwings」を使って、seabornのデータセットをExcelに出力するスクリプトを作ってみました。
seabornのデータセットをExcelに出力するスクリプト
以下のスクリプトを実行すると、フィッシャーのアヤメデータが、Excelの新規ブックに「iris」という名前のテーブルとして出力されます。
import seaborn as sns
DS_NAME = 'iris'
df = sns.load_dataset(DS_NAME)
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に読み込めます。
- 『Excel VBAユーザーのためのPythonプログラミング入門』発売に
- 拙著で紹介しているBooks/Bookが持つプロパティとメソッドの一覧
- 拙著で紹介しているSheets/Sheetが持つプロパティとメソッドの一覧
- 拙著で紹介しているRangeが持つプロパティとメソッドの一覧
最終更新日時:2023-10-13 13:59
Home » Python » xlwingsの使い方 » xlwingsでseabornのデータセットをExcelに出力する