u++の備忘録

阪神タイガース、今季初の八回から逆転勝利 昨日までの「0勝50敗」は他チームと比べ酷い数字か検証する

はじめに

本日朝、サンスポに次の記事が掲載されました。阪神タイガースは今季、「七回終了時にリードを許している試合で0勝50敗」という少し衝撃的なデータです。

www.sanspo.com

この記事に刺激されたか否かは分かりませんが、阪神は本日の試合で八回表に一挙6得点。今季初の八回からの逆転勝利を収めました。

f:id:upura:20180826173155p:plain

baseball.yahoo.co.jp

今回は「七回終了時にリードを許している試合で0勝50敗」という数字が他チームと比べてどれほど突出している数字なのか(はたまた特に驚くべき数字ではないのか)、他チームも含めたデータ分析を通じて検証してみたいと思います。

データの取得

どこかに良さげなデータベースがあるかと思い10分程度探しましたが見つからなかったので、Pythonを用いて自分で収集しました。

import pandas as pd
from tqdm import tqdm

result = []
match_id = []
for i in tqdm(range(330, 826)):
    for j in range(6):
        url = 'https://baseball.yahoo.co.jp/npb/game/20180' + str(i) + '0' + str(j+1)+ '/top' 
        try:
            fetched_dataframes = pd.io.html.read_html(url)
            result.append(fetched_dataframes[0])
            match_id.append('20180' + str(i))
        except:
            pass

データの前処理

最初に、分析に必要な情報をデータから抽出します。今回は、resultというリストにpandas.DataFrame形式でスコアボードが格納されています。

result[0]

f:id:upura:20180826174214p:plain

このデータから「七回終了時にリードを許している試合か否か」の情報を取り出します。具体的な処理については、雑なpandasの処理をしてしまったので割愛しますが、興味のある方はGitHubのipynbをご参照ください。

github.com

前処理を終えた後のDataFrameの最初の10行を、下記に示します。上から2行ずつ区切りの情報になっており、例えば最初の2行は「阪神ー巨人戦で、阪神も巨人も八回から逆転勝利しなかった(False)」という意味です。9, 10行目は「楽天ーロッテ戦で、楽天は八回から逆転勝利した(True)」ことを表しています。

f:id:upura:20180826190353p:plain

データの分析

本題の分析に入る前に、きちんと全データが抽出できているかを確認しておきます。

データをチーム名でまとめ上げて(groupby)、合計を出力した結果を、実際の試合数を比較しました。オールスター戦2試合も含めて、昨日(2018年8月25日)までの全試合の情報がデータに含まれていると確認できました。

オリックス     114
ソフトバンク    108
ヤクルト      109
ロッテ       109
中日        115
全セ          2
全パ          2
巨人        117
広島        110
日本ハム      112
楽天        112
西武        111
阪神        106
DeNA      11

f:id:upura:20180826191112p:plain

そしていよいよ、「七回終了時にリードを許していた試合」に関する情報を出してみます。ここではオールスター戦の情報は省きました。

f:id:upura:20180826191915p:plain

冒頭のサンスポの記事通り、阪神は「0勝50敗」でした。

「割合」を見ると、巨人が「1勝48敗」でワースト2位。本日阪神が1勝目を挙げたので、本日時点では阪神と並んでワーストになりました。

個人的に、広島は終盤の逆転が多いイメージがありましたが、3試合のみで割合はワースト4位でした。しかし、そもそも「七回終了時にリードを許していた試合数」が38と、他チームと比べて圧倒的に少ないです。序盤から優位に試合を進めている様子がうかがえます。

DeNAは「七回終了時にリードを許していた試合数」が64で12チーム中最多。広島の約1.7倍もありました。

楽天は55試合中8試合で八回から逆転勝利に成功。順位ではパ・リーグ最下位に沈んでいますが、逆転した試合数・割合ともに12チーム中1位になりました。

まとめ

  1. 今回は、サンスポの記事の分析結果を受けて「七回終了時にリードを許している試合」について分析しました。
  2. 他チームも含めたデータ分析を実施したところ、阪神の「0勝50敗」は巨人の「1勝48敗」と合わせて12チーム中で突出して悪い数字だと分かりました。
  3. とはいえ、一番数字が良かったのがパ・リーグ最下位の楽天で、セリーグを独走する広島は数字が良くないなど、決して一般的なチーム成績と関係ある指標ではないと示唆されました。