Python pandas Excelファイル 複数シートの読み込み
sample.xlsxにはSheet1とSheet2の2シートが存在し、この2つのシートからpandasのDataFrameデータとして読み込む
sheet_nameにシート名をリストで複数指定すると辞書型で格納される
dfには辞書型なので、df['Sheet1']と出力する
import pandas as pd df = pd.read_excel('sample.xlsx', sheet_name=['Sheet1', 'Sheet2']) df['Sheet1']
デフォルトでは1行目をヘッダー、2行目以降をデータとして読み込んでいくので、
今回のsample.xlsxのSheet1は3行目までの空白行を範囲外とする必要がある
読み飛ばしたい行はskiprowsに指定すると範囲外になる
- skiprows=3とすると1〜3行目を読み飛ばす
- skiprows=[1, 3]とすると1行目と3行目を読み飛ばす
ヘッダーが2行分ある場合はheader=[0,1]と指定をする
import pandas as pd df = pd.read_excel('sample.xlsx', sheet_name='Sheet1', skiprows=3, header=[0, 1]) df
大丈夫そうです
Sheet1とSheet2でskiprowsやheaderの指定が異なるので2度こうなる・・・けど
df1 = pd.read_excel('sample.xlsx', sheet_name='Sheet1', skiprows=3, header=[0, 1]) df2 = pd.read_excel('sample.xlsx', sheet_name='Sheet2')
これでいいんか?
もう少しスマートな書き方はないのかなと調べたら、コチラ
www.google.com
こうなりました。
xls = pd.ExcelFile('sample.xlsx') df1 = pd.read_excel(xls, sheet_name = 'Sheet1', skiprows = 3, header = [0,1]) df2 = pd.read_excel(xls, sheet_name = 'Sheet2') df1 df2