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
sheet1とsheet2の二つのワークシートを持ちます。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
すべての行・列を読み込む必要がない場合は、読み込む列、読み込まない行を指定しますことが可能です。
引数usecolsには読み込む列番号のリスト、引数skiprowsにはスキップします(読み込まない)行番号のリスト、引数skip_footerにはスキップします(読み込まない)末尾の行数を渡します。
これらの引数もcsvファイルを読み込むread_csv()と同様です。
skip_footerはread_csv()ではskipfooterなのでご注意ください。
併せて、以下もご参考ください。
ということで、今回は、Python(pandas)でExcelファイル(xlsx, xls)の読み込み(read_excel)についてご紹介しました。