【python】pandasでExcelファイルを読み込む方法

この記事ではExcelファイルのデータ読み込み方法をわかりやすく紹介していきます。

サンプルコードをコピペながサクサク処理を試せますのでぜひ参考にしてみてください。


では、早速始めていきましょう。初めはライブラリのインストールです。

目次

ライブラリのインストール

まずはデータフレームを扱えるようにするため、pandasライブラリをインストールしましょう。

pandasでExcelファイルを読み込む際に必要なopenpyxlライブラリとxlrdライブラリも一緒にインストールします。

ターミナル(mac)もしくはコマンドプロンプト(Windows)で以下を実行します。

(参考:PyPI-padas, PyPI-openpyxl, PyPI-xlrd)

pip install pandas
pip install openpyxl
pip install xlrd

このように「Successfully installed 〜〜〜」と表示されていればインストールは成功です。

pandasでExcelファイルを読み込み

pythonのpandasライブラリを使ったExcelファイル読み込み方法を紹介します。

pandasはさまざまなデータ処理を利用できるとても便利なライブラリです。

今回は、その中からExcelファイルのデータを読み込む方法をご紹介していきます。


pandasライブラリのインポート

まずはpandasライブラリをインポートしましょう。

pythonではインポートするライブラリを「import ・・・ as 〇〇」として〇〇という名前でインポートすることができます。

import pandas as pd

pandasライブラリを使用する際、毎回pandasと入力するのは面倒なので

省略してpdとしてインポートするのが通例です。


Excelファイル読み込み

今回は以下のように、値が入力されたExcelシートを読み込んでみます。


pandasのread_excel()メソッドを使います。

# 「sample.xlsx」というExcelファイルを読み込み
df = pd.read_excel("sample.xlsx")

すると、以下のようにExcelファイルのデータをpandasデータフレームに格納することができます。

このように、Excelファイルから読み込んだ値をpandasのDataFrame型に格納してくれます。


Pythonを実行する前にExcelファイルは閉じておきましょう。

指定したExcelファイルを開いたままだと、エラーが発生することがあります。


複数のシートから読み込む

複数シートがあるExcelファイルを読み込む場合、

すべてのシートを一度に読み込むこともできますし、特定のシートを指定して読み込むこともできます。



シート名を指定して読み込み

複数あるExcelシートの中から任意のシートを選んで読み込んでみましょう。

# シート名「abc」のExcelシートを読み込み
df1 = pd.read_excel("sample.xlsx", sheet_name="abc")

このように、read_excel()の引数に sheet_name で指定することで特定のシートだけを読み込むことができます。

また、sheet_name に複数のシート名をリストに入れて指定することで、同時に複数のシートを読み込めます。


# シート名「Sheet」と「abc1」をまとめて読み込み
df2 = pd.read_excel("sample.xlsx", sheet_name=["Sheet", "abc1"])
print(type(df2))
# 出力結果
dict

複数のExcelシートをまとめて読み込む場合、戻り値は辞書型(dict型)となります。

辞書キーでシート名を選択すれば、pandasのデータフレームを取り出すことができます。

print(df2["Sheet"])

シート番号を指定して読み込み

シート名ではなく、シート番号を指定することでも特定シートを読み込めます。

シート番号はpythonのリスト型インデックスと同様、0が先頭になります。


# シート番号0, 2を読み込み(シート名「Sheet」,「abc1」と同じ)
df3 = pd.read_excel("sample.xlsx", sheet_name=[0, 2])
print(df3.keys())
# 出力結果
dict_keys([0, 2])

シート番号を指定して読み込む場合、戻り値の辞書型のキーが『シート番号』となります。

読み込み方によって戻り値の辞書キーが変わるため、『シート名』・『シート番号』のどちらか一方に統一する方が良いでしょう。


すべてのシートをまとめて読み込み

Excelファイル内の複数シートをすべて読み込む際は、read_excel()の引数 sheet_name にNoneを指定します。

# すべてのシートを読み込み
df4 = pd.read_excel("sample.xlsx", sheet_name=None)
print(df4.keys())
# 出力結果
dict_keys(["Sheet", "abc", "abc2"])

すべてのシートを読み込んだ場合は戻り値のキーは『シート名』となります。


まとめ

この記事では、pythonを使ってExcelファイルのデータをpandasデータフレームで読み込む方法を紹介しました。

pythonでExcelデータを扱う際にはぜひ活用してみてくださいね。


よかったらシェアしてね!
目次