Pandasのread_excelでExcelファイルを読み込む方法

今回はPandasでExcelファイルを読み込む方法をマスターしましょう。引数もいくつか種類があるので、手に馴染ませて使い込みましょう。

csvファイルやtxtファイルの読み込みは、こちらのread_csv(), read_table()に関する記事をご覧ください。

Pandasのread_csvでcsvファイルを読み込む方法 Pandasのread_tableでtxtファイルを読み込む方法

Excelファイルはread_excel()で読み込める

xlrdをインストールして準備

read_excel()を使いますが、事前にxlrdというライブラリをpipでインストールしていないとエラーになります。これはread_excel()の内部でxlrdというライブラリを使っているので、インストールしておく必要があります。xlrdはPythonでExcelファイル(.xlsx や .xls)の読み込みを行うためのライブラリです。

pip
pip install xlrd
注意
読み込んでない状態でread_excel()を使うと、このようなエラーが発生します。ModuleNotFoundError: No module named ‘xlrd’

read_excel()を使う

結論、Excelファイルを読み込むには、pandasでread_excel()を使えばすぐにインポートすることができます。

Python
# sample.xlsxという名前のファイルを読み込む
import pandas as pd
pd.read_excel('sample.xlsx')

Excelファイルの読み込み時に、複数のシートを読み込みたい!とか、ヘッダーが付いていないファイルをヘッダーつけて読み込みたい!などさまざまなケースがあると思います。その場合は、引数を指定することで解決できますので、read_excel()の引数を見ていきましょう!

scikit-learnに付いてくるデータセット7種類を全部まとめてみた

Excelファイルの読み込みをマスターする

引数指定でできることを見ていきましょう。

読み込むシートを番号やシート名で指定する

引数にsheet_nameで読み込むシートを指定できます。シート名とは別に、0始まりの番号で指定することもできます。

Python
# sample.xlsxという名前のファイルを読み込む
import pandas as pd

#sample.xlsxの2ページ目のシートを読み込む
pd.read_excel('sample.xlsx', sheet_name=1)

#sample.xlsxの「third-sheet」という名前のシートを読み込む
pd.read_excel('sample.xlsx', sheet_name='third-sheet')

複数のシートを読み込む

複数のシートを一緒に読み込むこともできます。配列にして渡すと、OrderedDictとして読み込まれて返ってきます。

Python
#sample.xlsxの2ページ目と3ページ目のシートを読み込む
pd.read_excel('sample.xlsx', sheet_name=['1', '2'])

#sample.xlsxの2ページ目と、「third-sheet」という名前のシートを読み込む
pd.read_excel('sample.xlsx', sheet_name=['2', 'third-sheet'])

すべてのシートを読み込む

先ほどから引数sheet_nameで個別のシートの読み込みをしてきましたが、ここにNoneを指定すると、すべてのシートを読み込むことができます。

Python
#sample.xlsxのすべてのシートを読み込む
pd.read_excel('sample.xlsx', sheet_name=None)

ヘッダーとインデックスを指定する

ヘッダーがない場合には、header=Noneを指定して読み込み時にヘッダーを作ります。インデックスは、列番号を指定するとその列がインデックスとしてみなされます。0を指定すると、読み込み時にインデックスを新しく作ります。

Python
#ヘッダーを新たに作り、インデックスは1列目を対象とする
pd.read_excel('sample.xlsx', sheet_name=None, header=None, index_col=1)

読み込む列と読み込まない行を指定する

Excelファイルの中に読み込みたい列や行もあれば、反して読み込みたくない列や行もあると思います。読み込み時には、読み込む列と読み込まない行の指定をすることができます。

読み込む列はusecolsを使い、読み込まない行にはskiprowsを割り当てます。

Python
#2, 4, 6列目を読み込み、且つ5, 7行目は読み込まない
pd.read_excel('yolo.xlsx', header=None, index_col=None, usecols=[2, 4, 6], skiprows=[5, 7])

まとめ

Excelファイルの読み込み方法と、便利な引数をまとめてみました!Excelファイルはほとんどが複数シートだと思いますし、整理できていないからこそPandasを使って便利に処理したい、という方も多いと思うので、引数を駆使して使ってみてください!

また、関連するPandasの各ファイル読み込み方法はこちらからご覧ください!

Pandasでjson形式のファイルや文字列に変換・保存する方法 Pandasでjson形式のファイルや文字列を読み込む方法 Pandasのread_tableでtxtファイルを読み込む方法 【Pandas】データフレームの行・列の長さを確認する方法 scikit-learnに付いてくるデータセット7種類を全部まとめてみた