xlwingsを使って、Excelファイルの値をpandasのDataframeの形式で読み込みます。
環境
python : 3.12.3
Excel:2412
xlwings:0.32.1
Excelファイル
読み込み元のExcelファイルを用意します。
このデータをDataframe型で読み込んでみます。
コード
import pandas as pd import xlwings as xw from xlwings import Sheet with ( xw.App() as app, xw.books.open( r"xxxxx\test.xlsx" ) as wb, ): sheet: Sheet = wb.sheets["dataframe_sample"] df: pd.DataFrame = ( sheet.range("A1:F4").options(pd.DataFrame, index=False, header=True).value ) print("type(df):", type(df)) print("df:", df) print("df.columns:", df.columns) # 出力 # type(df): <class 'pandas.core.frame.DataFrame'> # df: header header header header header header # 0 りんご りんご りんご りんご りんご りんご # 1 ぶどう ぶどう ぶどう ぶどう ぶどう ぶどう # 2 梨 梨 梨 梨 梨 梨 # df.columns: Index(['header', 'header', 'header', 'header', 'header', 'header'], dtype='object')
説明
sheet.rangeで範囲を取得した後、optionsメソッドを呼び出します。
optionsの第一引き数にpd.DataFrameを指定することで、Dataframeとしてセルの値を取得できます。
optionsの引数indexにFalseを指定することで、取得したDataframe型のデータにindexを設定できます。
optionsの引数headerにTrueを指定することで、指定範囲の1行目がheaderとして取得されます。
これら引数の値はBoolean以外にint型でも指定できます。(1がTrue、0がFalse)
また、header = 2 と指定すると、指定範囲の2行目までがヘッダーとして取得されます。
df: pd.DataFrame = ( sheet.range("A1:F4").options(pd.DataFrame, index=0, header=True).value )