Python(pandas)でExcelファイル(xlsx, xls)の読み込み(read_excel)

pandasでExcelファイル(拡張子:.xlsx, .xls)をpandas.DataFrameとして読み込むには、pandas.read_excel()関数を使います。
pandas.read_excel — pandas 0.22.0 documentation
 

以下のxlsxファイルを例とします。
sample.xlsx
sheet1sheet2の二つのワークシートを持ちます。sheet1の中身は以下の通りです。
 

 

PythonでのExcelファイルの扱いについては以下の記事を参照。


 

xlrdのインストール

pandas.read_excel()では内部でxlrdというライブラリを使っています。
xlrdはPythonでExcelファイル(.xlsx, .xls)の読み込み(入力)を行うためのライブラリです。

xlrdがインストールされていない環境でpandas.read_excel()を呼ぶと、以下のようなエラーメッセージが表示されます。

 

xlrdはpipでインストールできます。(環境によってはpip3

 

pandas.read_excel()の基本的な使い方

第一引数ioにExcelファイルのパスまたはURLを指定します。
 
複数のシートがある場合、最初のシートのみがpandas.DataFrameとして読み込まれます。

 

例では.xlsxファイル(Excel2007以降のExcelファイル)を読み込んでいますが、.xlsファイル(Excel97-2003のExcelファイル)でも同様です。
 

読み込むシートを番号・シート名で指定: 引数sheet_name

引数sheet_nameで読み込むシートを指定できます。0始まりの番号かシート名で指定します。

 

複数のシートを読み込み

引数sheet_nameには0始まりの番号かシート名のリストを指定しますことも可能です。
 

指定した番号またはシート名がキーkey、そのシートのデータpandas.DataFrameが値valueとなる順序付き辞書OrderedDictとして読み込まれます。

 

OrderedDictは要素の順番を保持した辞書です。
辞書dictと同様にキーで値を参照できます。

 

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

引数sheet_name=Noneとすると、すべてのシートが読み込まれます。

 

シート名がキーkeyとなります。

 

ヘッダー、インデックスの指定: 引数header, index_col

ヘッダー(pandas.DataFrameの列名columns)、インデックス(pandas.DataFrameの行名index)を指定するには、それぞれ引数header, index_colに0始まりの行番号または列番号を渡します。Noneの場合はデフォルトの0始まりの連番となります。

 

すべての行・列を読み込む必要がない場合は、読み込む列、読み込まない行を指定しますことが可能です。
 
引数usecolsには読み込む列番号のリスト、引数skiprowsにはスキップします(読み込まない)行番号のリスト、引数skip_footerにはスキップします(読み込まない)末尾の行数を渡します。

 

これらの引数もcsvファイルを読み込むread_csv()と同様です。
 
skip_footerread_csv()ではskipfooterなのでご注意ください。
 

併せて、以下もご参考ください。

ということで、今回は、Python(pandas)でExcelファイル(xlsx, xls)の読み込み(read_excel)についてご紹介しました。