DataScience

【Pandas】excelのシート名一覧を取得して読み込む

excelファイルを読み込む時、全てのシートを読み込むのであれば簡単に設定できるが、その他の場合は個別に読み込むシートを記載していく必要がある。

excelファイルを読み込む時はスライスによる表現が使えず、シート名やシート番号を1つずつ指定する必要がある。

シートがたくさんあると、いちいち指定するのが面倒なので、excelファイルのシート名一覧を作成できれば、プログラムを書くのが楽になる。

シート名一覧の作成

import pandas as pd

input_file = pd.ExcelFile('./sample.xlsx')
sheet_names = input_file.sheet_names
print(sheet_names)
['Sheet1', 'Sheet2', 'Sheet3']

これでシート名のリストが作成される。

あとは、read_excelでファイルを読み込むだけ。

excelファイルの読み込み

d_df = pd.read_excel(input_file, 
                     index_col=None, 
                     parse_dates=None, 
                     header=None, 
                     sheet_name=sheet_names)
print(d_df["Sheet1"])
print("--------------------------")
print(d_df["Sheet2"])
print("--------------------------")
print(d_df["Sheet3"])
   colA  colB  colC  colD
0     1     4     7    10
1     2     5     8    11
2     3     6     9    12
--------------------------
   colA  colB colC colD
0     1     4  aaa    A
1     2     5  bbb    B
2     3     6  ccc    C
--------------------------
   colA  colB colC colD
0     1   1.1  aaa    A
1     2   2.2  bbb    B
2     3   3.3  ccc    C

sheet_nameにシート名のリストを指定することで、全シートをデータフレームとしてまとめて読み込むことができる。

なお、複数のシートを読み込んだ場合、シート名をキー、値をデータフレームとした辞書が返ってくる。

キーにシート名を指定することで、対象のデータフレームを取得可能。