Python

セ・リーグの優勝チームに関する分析

前回までにセ・リーグの優勝チームに関するデータを入手し、加工することができました。

今回は取得したデータを使って、簡単なデータ分析をしてみたいと思います。

分析環境

使用するデータ

前回作成したデータを利用します。

データを確保しよう②美しく日刊スポーツ様のサイトからデータを取得しよう。...

分析に使用するライブラリ

Pandasを利用します。

Pandasの概要は以下のとおりです。

Pandasとは
Pandas(パンダス)はデータ解析を容易にする機能を提供するPythonのデータ解析ライブラリです。
Pandasの特徴には、データフレーム(DataFrame)などの独自のデータ構造が提供されており、様々な処理が可能です。
特に、表形式のデータをSQLまたはRのように操作することが可能で、かつ高速で処理出来ます。
最新情報に関しては 公式ドキュメントを参考してください。

出典:AI Academy Media

分析結果

過去最多勝利の優勝チームを表示

max_win_index = df["勝"].idxmax()
print(df.iloc[max_win_index,:])

### 実行結果 ###
年              1950
優勝チーム            松竹
勝                98
敗                35
分                 4
勝率            0.737

いきなり聞き慣れないチームが登場しました。1950年はセ・リーグが誕生した年です。黎明期にはリーグ内で戦力の均衡が図られず、優秀な戦力を有した松竹が圧勝したことがうかがえます。

なお、松竹の概要は以下を参考にしてください。

松竹ロビンス(しょうちくロビンス、Shochiku Robins)は、1936年から1952年まで17年間活動した日本プロ野球球団。セントラル・リーグに加盟していた。

1953年旧・大洋ホエールズと対等合併し、大洋松竹ロビンスとなった。しかし、その翌年に合併時の親会社だった松竹が球団経営から撤退したため、実質的には大洋ホエールズ(現:横浜DeNAベイスターズ)に吸収合併された形になり、それ以降は消滅球団の扱いを受けている。

出典:ウィキペディア

過去最高勝率の優勝チームを表示

high_win_index = df["勝率"].idxmax()
print(df.iloc[high_win_index,:])

### 実行結果 ###
年              1950
優勝チーム            松竹
勝                98
敗                35
分                 4
勝率            0.737

またしても、1950年の松竹です。

過去最少勝利の優勝チームを表示

min_win_index = df["勝"].idxmin()
print(df.iloc[min_win_index,:])

### 実行結果 ###
年              1982
優勝チーム            中日
勝                64
敗                47
分                19
勝率            0.577

1982年の中日ドラゴンズがもっとも少ない勝ち星で優勝したチームでした。なお、この年をもって故・星野仙一さんが現役を引退されています。

過去最低勝率の優勝チームの表示

low_win_index = df["勝率"].idxmin()
print(df.iloc[low_win_index,:])​

### 実行結果 ###
年              1973
優勝チーム            巨人
勝                66
敗                60
分                 4
勝率            0.524

有名なV9最後の年です。ギリギリで優勝したことがうかがえます。翌年、連覇ができなかったこともなんだか納得です。

データ分析(おまけ)

日刊スポーツさんから拝借したデータだけ分析しても勉強にならないので、勝ち数から負け数を引いた「貯金」を算出した上で、再度分析を行ってみます。

貯金を算出する

df["貯金"] = df["勝"] - df["敗"]​

過去最多貯金の優勝チーム

high_savings = df["貯金"].idxmax()
print(df.iloc[high_savings,:])​

### 実行結果 ###
年              1950
優勝チーム            松竹
勝                98
敗                35
分                 4
勝率            0.737
貯金               63

・・・

過去最少貯金の優勝チーム

low_savings = df["貯金"].idxmin()
print(df.iloc[low_savings,:])

### 実行結果 ###
年              1973
優勝チーム            巨人
勝                66
敗                60
分                 4
勝率            0.524
貯金                6

・・・

まとめ

取得したデータを使って、狙った条件でデータを出力することに成功しました。

1950年の松竹や1973年の巨人については、結果から様々な状況を仮定することが出来たので、良い分析になりました。

一方で、わざわざ算出した「貯金」については、勝率の高さと紐付く結果になったので、改めて計算する必要性はなかったかな?とも思います。今後はコーディングスキルを磨くとともにデータ分析のセンス、勘所も磨いていきます。

COMMENT

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

CAPTCHA