Home » Python » pandasの使い方 » pandasでExcelの全シート名を取得する-ExcelFile.sheet_names属性

pandasでExcelの全シート名を取得する-ExcelFile.sheet_names属性

動作検証バージョン:Windows 10 + Python 3.7.3 + pandas 0.24.2

xlwingsやxlrdで、Excelの全シート名を取得するコードをご紹介しました。

データ解析を行うライブラリpandasでも、Excelの全シート名を取得できます。

[スポンサードリンク]

pandasのsheet_namesで全シート名を取得するサンプル

以下のスクリプトを実行すると、Cドライブtempフォルダーに存在するfoo.xlsxファイルの全シート名がprintされます。

import pandas

bk = pandas.ExcelFile('C:\\temp\\foo.xlsx')
print(bk.sheet_names)

pandasのExcelFileオブジェクトに用意されているsheet_names属性を使うと、シート名一覧をリストとして取得できます。

内部ではxlrdを利用

xlrdで、

bk = xlrd.open_workbook('C:\\temp\\foo.xlsx')
print(bk.sheet_names())

というコードをご紹介しました。

上述のpandasのコードは、このxlrdのコードと内部的には同じです。
pandasの

bk = pandas.ExcelFile('C:\\temp\\foo.xlsx')

は、xlrdの

bk = xlrd.open_workbook('C:\\temp\\foo.xlsx')

を内部で呼び、pandasの

print(bk.sheet_names)

は、xlrdの

print(bk.sheet_names())

を内部で呼んでいるだけだからです。

xlrdではsheet_names()ですが、pandasの場合sheet_namesとしなければならない点には、注意が必要だと感じます。

dict.keys()を使って全シート名を取得するサンプル

全シート名を取得するだけならば、上記のコードがおすすめですけれど、以下のようなコードでも全シート名の取得は可能です。

import pandas

dic_df = pandas.read_excel('C:\\temp\\foo.xlsx', sheet_name=None)
print(list(dic_df.keys()))

pandas.read_excel()関数の引数sheet_nameにNoneを指定すると、シート名をkey、各ワークシートのデータをvalueとして持つ、dictionaryの形で、全ワークシートのデータを取得できます。

dic_df = pandas.read_excel('C:\\temp\\foo.xlsx', sheet_name=None)

このkeyだけを、dict.keys()メソッドで取得して、list()関数でリストにしてからprintしています。

print(list(dfs.keys()))

最終更新日時:2023-03-28 09:58

[スポンサードリンク]

Home » Python » pandasの使い方 » pandasでExcelの全シート名を取得する-ExcelFile.sheet_names属性

「pandasの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.