見出し画像

pandasでexcel数式のままデータを扱う方法

pandasでexcelを読込むread_excel関数では数式は結果を読込む。
pandasを使い、excelファイル内のデータをフィルタリングし、excelに戻す場合、数式のまま戻したい。
そのような場合は、始めにopenpyxlのload_workbook関数でオプション引数data_only=Falseを使いデータを読込み、pandasのデータフレームへ移す。

import pandas
import openpyxl

wb = openpyxl.load_workbook("file.xlsx", data_only=False)
ws = wb["シート名"]
ws_df = ws.values

column = next(ws_df)

df = pandas.DataFrame(ws_df, columns=column)


with pandas.ExcelWriter("file.xlsx") as writer:
    df.to_excel(writer, sheet_name="シート名", index=False, header=True)

6段目、ワークシートの1行目をデータフレームのカラム名とするために
next関数を使用する。
pandasのDataFrameクラスを第一引数にワークシートのオブジェクト、オプション引数columnsにカラム名のオブジェクトを設定し、データフレーム化すると数式のままpandasで扱える。

この記事が気に入ったらサポートをしてみませんか?