( New ) 新連載スタート!2人の会話形式でPythonを学ぶ「週末Pythonゆる講座」はこちら ▶▶

【Python】read_excel|エクセルをPythonに読み込む方法

事前準備

Pandas」というデータ解析を実施できるライブラリをインポートします 

import pandas as pd

read_excelの使い方

read_excel()はエクセルファイル( .xls, .xlsx, .xlsm )をPythonに読み込むことができます

pandasの機能を使うために頭に「pd.」を付けましょう(事前準備でPandasをpdと名付けています)

pd.read_excel('/content/drive/MyDrive/python/ファイル名.xlsx')
pd.read_excel('ファイル名.xlsx')

エクセルファイルが置いてあるファイルパス(もしくはファイル名)を指定することで、Pythonに読み込むことができます

またパラメータを指定することで、どのシートから取ってくるか、ヘッダーは必要かなども設定することができます

このようなエクセルファイルを「Python」で読み込みます

エクセルのサンプルデータ

sample = pd.read_excel('サンプルデータ.xlsx')
sample.head()
Pythonのサンプルデータ

※Google Colaboratoryにエクセルファイルをアップロードする方法

Google Colaboratoryのファイルアップロード

※Google Driveと連携する方法

【Python】Google ColaboratoryとGoogle Driveを連携する方法

パラメータ

おすすめ度を判定:★★★=必須|★★☆=推奨|★☆☆=任意

★★★:ファイルパス/ファイル名

pd.read_excel('ファイル名.xlsx')
pd.read_excel('/content/drive/MyDrive/python/ファイル名.xlsx')

シングルクォーテーションか“”ダブルクォーテーションを付けて

ファイル名やファイルパスを記載します

拡張子(.xlsxなど)を忘れずに記載してください

★★☆:index_col(インデックス/先頭列)

pd.read_excel('ファイル名.xlsx', index_col=None)

インデックスを指定します

何も設定しないと自動的にインデックスが作成されます(0始まりの連番)

  • index_col = None(0始まりの連番が作成される)※デフォルト
  • index_col = 0(1列目がインデックスになる)
  • index_col = 1(2列目がインデックスになる)
  • index_col = 1, 2(2,3列目がマルチインデックスになる)

初期設定ではインデックスが自動的に設定されてしまうため、

「index_col= 0」の設定を推奨します

また表が「A列」から始まっていないとき、インデックスとなる列を設定しましょう

エクセルのフッター調整

★☆☆:sheet_name(シート名)

pd.read_excel('ファイル名.xlsx', sheet_name=0)

読み込むシート名を指定することができます

何も指定しないと最初のシートになります

  • sheet_name = 0(最初のシートを読み込む)※デフォルト
  • sheet_name = 1(2番目のシートを読み込む)
  • sheet_name = “sheet1”(シート名を読み込む)
  • sheet_name = [0, 1, 2](複数シートを読み込む)
  • sheet_name = None(すべてのシートを読み込む)

※複数のシートを指定した場合は、値が辞書型として読み込まれます

★☆☆:header(ヘッダー/先頭行)

pd.read_excel('ファイル名.xlsx', header=0)

ヘッダーの位置を指定します

何も設定しないと1行目がヘッダーになります

Pythonのサンプルデータ
  • header = 0(1行目がヘッダーになる)※デフォルト
  • header = 1(2行目がヘッダーになる)
  • header = 1, 2(1,2行目がマルチカラムとしてヘッダーになる)
  • header = None(ヘッダー無し、0からの連番)

表のヘッダーが「先頭行にない」とき、「header」のパラメータで調整しましょう

下記の場合は「header=3」が適切

エクセルのヘッダー調整

★☆☆:usecols(使う列)

pd.read_excel('ファイル名.xlsx', usecols=None)

使う列をパラメータで指定することができます

  • usecols = None(すべての列)※デフォルト
  • usecols = ‘A’(エクセルのA列のみ)
  • usecols = ‘A,B,C’(エクセルのA,B,C列)
  • usecols = ‘A:C’(エクセルのA~C列)
  • usecols = [1](2列目のみ)※一列でも[]リストを使う
  • usecols = [1, 2, 3](2,3,4列)
  • usecols = [‘都道府県’](都道府県というカラムのみ)
  • usecols = [‘都道府県’,’地方’](都道府県と地方というカラムのみ)
Python上でも操作できる!?

使う列に関しては「エクセルから読み込むときに抽出する」と「Pythonで取捨選択する」の2パターンあります。

データが多すぎる場合は「usecols」を使って、読み込むデータを減らして読み込みましょう

★☆☆:skiprows(読み込まない行)

pd.read_excel('ファイル名.xlsx', skiprows=1)

読み込まない行を選択します(※読み込まない設定なので注意!)

  • skiprows = 2(先頭から2行を読み込まない)
  • skiprows = [2, 4](2,4行目を読み込まない)

★☆☆:skipfooter(読み込まない最後の行)

pd.read_excel('ファイル名.xlsx', skipfooter=1)

skiprows」と似たようなパラメータですが、最後の行(フッター)で読み込まない行を指定できます

例えばエクセルである程度「集計」している場合、最後の行に「合計」の列があったりします

エクセルのフッター

Pythonでこのまま集計してしまうと、この「合計欄」まで計算してしまいます…

  • skiprows = 1(最後から1行を読み込まない)

まとめ

普段使っている「エクセル」のデータを

Python」に読み込む方法をご紹介してきました

最低限のデータをread_excelで読み込み、

後はPythonで操作していきましょう

お気に入り登録お願いします

コメントを残す

メールアドレスが公開されることはありません。