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)についてご紹介しました。