本サイトは広告・プロモーションが含まれています
Python

【Python】Excelデータを読み込む方法【初心者向け】

この記事は、こんな人にオススメ

・openpyxlを使ってExcelを読み込みたい方
・Pythonを使ってExcelを取り扱ってみたい方
・実際どういうコードでExcelを読み込むか知りたい方


どうもこんにちは
今でもExcelを扱うことが苦手なコンです。

そんな私が働いている会社は、大量の Excelファイルを使って仕事をしております。
結構便利ですからね。

そこで今回はPythonを使ったExcelデータの取り扱い方法について書いていきます。


Excelデータを扱うライブラリ

Python言語でコードを書く時によく使う機能が「ライブラリ」です。「ライブラリ」とは、特定の動作をする関数やクラスを一つにまとめたもので、インターネット経由で誰でも自らのインストールして使うことができます。

Excelを扱うライブラリはいくつかあります。
メジャーなライブラリは下の2つです。

①openpyxl
②pandas

今回は
openpyxlをメインに書きたいと思います。

openpyxlのインストール

一番確実にインストールする方法は、公式HPを参照!!!

なんですが

ペン太郎
ペン太郎
初心者には厳しいよ。。。

と感じるので書いていきます。

まずインストールするためには
以下のコードをコマンドプロンプトもしくはターミナルで実行してください。

pip install openpyxl

そうすると、お使いのPCにインストールされているPythonに適合したバージョンのライブラリをダウンロード、インストールして使える状態にしてくれます。

openpyxlを使ったPythonコード

実際にPythonnコードを書いて
Excelをコードを書いてみましょう。

使用するExcelデータ

正直なんでも良かったんですが
千葉商科大学さん(https://www.cuc.ac.jp/)がプロ野球選手のポジション・身長・体重のデータを
提供していらっしゃったのでこのデータを使いたいと思います。

プロ野球選手データ
ちょっと古そうなデータ、生年月日がちょっと読み込めてない?

これの身長と体重のデータを抜き出して表示してみたいと思います。

Pythonコードを書く

とりあえず今回のコードはこんな感じ

import openpyxl
# baseball.xlsxを読み込み
wb = openpyxl.load_workbook("baseball.xlsx")

# 名前が「Sheet1」のシート
ws = wb["Sheet1"]

#シートの列数
row_max=ws.max_row

#身長と体重がどこの列か探す
for row in ws.rows:
    for cell in row:
        if cell.value == '身長':
            height=cell.column

        elif cell.value == '体重':
            weight=cell.column
            
    
#身長と体重の値のみ表示
for i in range(2,row_max):
    print(ws.cell(row=i, column=height).value, ws.cell(row=i, column=weight).value)

baseball.xlsxファイルが今回の読み込むファイルです。
上を実行するとこんな結果になります。

ちゃんと?金剛選手、岡田選手の順にデータが取れてます。

openpyxlを使う時のポイント

今回扱ったopenpyxlのポイントは2つあります。

ジェネレーターを含む2つのfor文

for row in ws.rows:
    for cell in row:

この2つのfor文の箇所でしょうか

ペン太郎
ペン太郎
for文が2つ。。。(絶望)

なれると、そんなに難しくないですよ!!
下の写真がポイントの2つのfor文のイメージ図です。

コードの
1行目:①ws,rows(ジェネレーター)から②row(データの列)を取り出す。
2行目:②rosから③cellを取り出す。
みたいにしてcellの値を取り出しています。

ジェネレーターってなんやねん
みたいに思うかたも多いかもしれませんが

今回はNo、選手名、リーグ。。。と左の列から順にデータを
吐き出してくるものです。

ペン太郎
ペン太郎
for文で左の列から順番にとっていくのが1行目のコードで、とった列の上から何行目のcellをとるかを考えるのが2行目だね!!

cellオブジェクトの取り扱い

今回はcell.valueやcell.columnのように
cellというオブジェクトの後にプロパティを記述して
cellの中に記述されている値や、どこの列かの値を出力しています。

この扱いを調べるには、やっぱりopenpyxl公式ページがちゃんと解説してくれております。

分からなかったらここを参考にしましょう。

終わりに

ここまで読んでいただきありがとうございます。

PythonでExcelのデータを読み込むのは、
プログラミングを始める実践の最初の1例だと思いますので頑張ってください。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA