
【Python/Pandas】書式設定を制御してExcelに出力【StyleFrame】
目次
1. StyleFrameの準備
StyleFrameというライブラリを利用することでpandasのto_excelによって作成されるExcelファイルの書式を制御できます。
以下のようにコンソールからStyleFrameをインストールします。
Text
pip3 install StyleFrame続いて、Pythonのコンソールから以下のようにimportします。
Text
from styleframe import StyleFrame, Styler, utilsこれにより、引数の関数の実行前後に処理を追加することができます。
2. 列の幅を指定してExcelに出力する
列の幅を指定する場合を例に、StyleFrameを利用する方法を示します。
Text
# with構文でStyleFrameからファイルを開きますwith StyleFrame.ExcelWriter(f"summary.xlsx") as writer: # 出力したいpandasのdataframeをStyleFrameオブジェクトに変換します sf = StyleFrame(df)
# 列番号とその列の幅を以下のように指定します(一番左の列の番号は1から始まることに注意します) sf.set_column_width(columns=[1], width=14) sf.set_column_width(columns=[2, 3], width=80)
# Excelファイルとして書き出します。 sf.to_excel(writer, sheet_name='test', index=False)3. セル内で改行させる
pandasのdataframeの各セルに/nを含めてto_excelをし、得られたファイルをExcelから開いても/nの部分は改行されずに表示されてしまいます。
/nの部分で改行された状態で表示させるためには、以下のようにStyleFrameを利用します。
Text
# with構文でStyleFrameからファイルを開きますwith StyleFrame.ExcelWriter(f"summary.xlsx") as writer: # 出力したいpandasのdataframeをStyleFrameオブジェクトに変換します sf = StyleFrame(df_pred_105)
# 改行させるStyle objectを作成しておきます。 wrap_text_style = Styler(wrap_text=True)
# 列名を指定し、その列に対して上記のStyleを指定することで、該当列の/nが有効になります。 sf.apply_column_style(cols_to_style=['列1', '列2'], styler_obj=wrap_text_style)
# Excelファイルとして書き出します。 sf.to_excel(writer, sheet_name='test', index=False)3. まとめ
本記事ではStaleFrameを利用したPythonのPandasからExcelの書式まで指定して出力する方法を示しました。
以上になります。

