表データを可視化したい時、まずエクセルで生のデータを表示したい時があります。これは具体的には「Pandas の DataFrame を Excel で保存し、それを開く」という作業です。この作業を自動化したら、便利だったので、ここに紹介します。
2. 作成した関数
def show_excel(df, out_filename='tmp.xlsx'): ''' Parameters ---------- df: DataFrame to show out_filename: Filename of the DataFrame(optional) default 'tmp.xlsx' Returns: None ''' df.to_excel(out_filename) app = xw.App(visible=None, add_book=True) wb = xw.books.open(out_filename) wb.activate(steal_focus=True)
4. 実行方法
import pandas as pd import numpy as np import xlwings as xw df = pd.DataFrame(np.arange(15).reshape(5, 3), columns=['x', 'y', 'z']) show_excel(df) # エクセルのプロセスを全て終了(kill) する # [app.quit() for app in xw.apps]
5. 実行結果
実行すると、 エクセルが起動し df の内容が表示されます。
6. 注意事項
- デフォルトでカレントディレクトリの 'tmp.xlsx' が上書き保存されますので注意してください
- エクセルの新しいプロセスが起動します
- 起動したエクセルを終了する場合は、プロセスを終了(kill)してください(実行方法は使用方法の一番下のコメントに記載)
以上です。