機械学習・ディープラーニングがゼロから学べる大人気『脱ブラ』が無料に!

【AI 講師が解説】Python で Excel(エクセル)を読み込む方法

こんにちは!機械学習の講師をしている高良です。
ここでは、Excel ファイルを Pandas を使用して読み込む方法を初学者向けに解説します。

Excel ファイルを読み込めたはいいけど、想定している出力と違った」という方も、読み込む際の設定方法をまとめているので参考にして下さい。

実行環境

事前準備

  • Google Colab の新しいノートブックを立ち上げる
  • Excel ファイルを Google Colab 上にアップロードしておく

Google Colab でデータを読み込む方法は主に 2 通りあります。アップロードの方法は以下の記事をご覧下さい。
【Google Colaboratory】ファイルをアップロード・ダウンロードする方法 【Google Colaboratory】Google ドライブにマウントし、ファイルへアクセスする方法

引数早見表

pd.read_excel() を使用する際の引数の早見表です。
詳細は以降の内容で記述します。

内容 使用例
シートの指定 sheet_name='シート名'
ヘッダーの指定 header=行番号
ヘッダー名の指定 names=['列名1', '列名2']
インデックスの指定 index_col='列名'
読み込む列の指定 usecols=列番号
読み込まない行の指定 skiprows=行番号

Excel ファイルの読み込み方

他のライブラリを用いても Excel を操作することはできますが、 Pandas を使用することでデータの処理・分析を行う上では作業効率が良いため Pandas を使用します。

Pandas で読み込み
import pandas as pd
df = pd.read_excel('sample.xlsx')

シートの指定 sheet_name

シートの指定は sheet_name で設定します。

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

シート番号やシート名の指定ができます。

シートを指定
import pandas as pd

# デフォルト -> 1 つ目のシートを読み込み
df = pd.read_excel('sample.xlsx', sheet_name=0)

# シート番号を指定 -> 3 つ目のシートを読み込み
df = pd.read_excel('sample.xlsx', sheet_name=2)

# シート名を指定
df = pd.read_excel('sample.xlsx', sheet_name='シート名 1')

ヘッダー行の指定 header

ヘッダー(列名)の指定は header で設定します。
指定した行より上は読み込まれません。

ヘッダー行を指定して読み込み

行番号の指定を行います。

ヘッダーを指定
import pandas as pd
# デフォルト -> 1 行目をヘッダーとして読み込み
df = pd.read_excel('sample.xlsx', header=0)

# 行番号を指定 -> 3 行目をヘッダーとして読み込み
df = pd.read_excel('sample.xlsx', header=2)

# ヘッダーなし -> 1 行目からデータとして読み込み
df = pd.read_excel('sample.xlsx', header=None)

ヘッダー名を指定して読み込み

ヘッダーの名前を list 型で定義して読み込むことも可能です。
ヘッダーがあるデータを置き換えたい場合は併せて header を指定する必要があります。

ヘッダー名を指定
import pandas as pd
# ヘッダー名を指定
df = pd.read_excel('sample.xlsx', names=['列名 1', '列名 2', ... , '列名 n'])

インデックス列の指定 index_col

インデックスの指定は index_col を設定します。

インデックス列を指定して読み込み

複数行をインデックスとして指定したい場合は list 型で定義します。

インデックス列を指定
import pandas as pd
# デフォルト -> インデックス列の指定なし
df = pd.read_excel('sample.xlsx', index_col=None)

# インデックスとして使用する列番号を指定 -> 0 番目の列をインデックスとする
df = pd.read_excel('sample.xlsx', index_col=0)

# 指定したインデックスを日付データとして扱う場合
df = pd.read_excel('sample.xlsx', index_col=0, parse_dates=True)

データを絞って読み込み

他にも、読み込む際に便利な引数としてデータを絞って読み込む方法を紹介します。

読み込む列を指定

読み込む列を指定したい場合は usecols を設定します。

読み込む列を指定
import pandas as pd

# 読み込む列番号を指定 -> 1,3,4 行目を読み込み
df = pd.read_excel('sample.xlsx', usecols=[0,2,3])

# 読み込む列名を指定 -> B から D 列を読み込み
df = pd.read_excel('sample.xlsx', usecols="B:D")

読み込まない行を指定

読み込まない行を指定したい場合は skiprows もしくは skiprows を設定します。

読み込まない行を指定
import pandas as pd

# 先頭から読み込まない行を指定 -> 先頭 5 行をスキップ
df = pd.read_excel('sample.xlsx', skiprows=5)

# 先頭から読み込まない行をリストで指定 -> 1,3,4 行をスキップ
df = pd.read_excel('sample.xlsx', skiprows=[0,2,3])

# 末尾から読み込まない行を指定 -> 末尾 5 行をスキップ
df = pd.read_excel('sample.xlsx', skipfooter=5)

最後に

以上です。本記事では、Python で Pandas を使用して Excel ファイルを読み込む方法を解説しました。以下まとめです。

  • Excel ファイルを読み込み時は pd.read_excel() で読み込みを使用
  • シート、ヘッダー、インデックスを指定する場合はそれぞれ sheetheaderindex_col を引数で指定
  • 読み込む列を指定、読み込まない行を指定する場合はそれぞれ usecolsskiprows / skipfooters を引数で指定

以上、Excel データを読み込んでデータ分析を行う方々のお力添えになれば幸いです!

参考リンク

参考 pandas ドキュメント

大人気コース「Python & 機械学習入門コース」が無料!

現在 e ラーニングプラットフォーム「キカガク」に無料登録すると、これまで多くの方にご受講いただいた、Python の基礎から機械学習の数学やプログラミングまでを学べる大人気コース「Python & 機械学習入門コース」が無料です。

好評である手書きの数学とハンズオン形式のプログラミングを通じて、初学者でも数学の理論から実装まで一から学習できます。また、動画で丁寧に解説しているため、迷うことなく最後まで継続して学習しやすいです。

Python の基礎から機械学習を学習したい方は、ぜひ教材の1つとしてご利用ください!