LoginSignup
0
0

プロ野球も、交流戦が終わり、今週金曜日からリーグ戦が再開しようとしている。
そこで、私はPythonを使って現在のプロ野球の順位表を作成するのに興味を持った。

プログラムコード

pip install pandas
import pandas as pd

# セントラルリーグのデータ
central_league_data = {
    "チーム": ["広島カープ", "阪神タイガース", "読売ジャイアンツ", "横浜ベイスターズ", "ヤクルトスワローズ", "中日ドラゴンズ"],
    "勝利数": [32, 32, 31, 32, 27, 27],
    "敗戦数": [25, 30, 30, 31, 33, 33],
    "引き分け数": [4, 4, 5, 1, 4, 5],
    "勝率": [0.561, 0.516, 0.5081, 0.5079, 0.45, 0.45],
    "ゲーム差": [None, 2.5, 0.5, 0, 3.5, 0]
}

# パシフィックリーグのデータ
pacific_league_data = {
    "チーム": ["ソフトバンクホークス", "千葉ロッテ", "日本ハム", "楽天イーグルス", "オリックス", "西武"],
    "勝利数": [41, 31, 32, 31, 29, 19],
    "敗戦数": [19, 27, 28, 31, 33, 44],
    "引き分け数": [2, 5, 5, 1, 2, 0],
    "勝率": [0.683, 0.534, 0.533, 0.5, 0.468, 0.302],
    "ゲーム差": [None, 9, 0, 2, 2, 10.5]
}

# DataFrameに変換
central_league_df = pd.DataFrame(central_league_data)
pacific_league_df = pd.DataFrame(pacific_league_data)

# 表示
print("セントラルリーグ順位表")
print(central_league_df.to_string(index=False))

print("\nパシフィックリーグ順位表")
print(pacific_league_df.to_string(index=False))

出力結果

セントラルリーグ順位表
      チーム  勝利数  敗戦数  引き分け数     勝率  ゲーム差
    広島カープ   32   25      4 0.5610   NaN
  阪神タイガース   32   30      4 0.5160   2.5
 読売ジャイアンツ   31   30      5 0.5081   0.5
 横浜ベイスターズ   32   31      1 0.5079   0.0
ヤクルトスワローズ   27   33      4 0.4500   3.5
  中日ドラゴンズ   27   33      5 0.4500   0.0

パシフィックリーグ順位表
       チーム  勝利数  敗戦数  引き分け数    勝率  ゲーム差
ソフトバンクホークス   41   19      2 0.683   NaN
     千葉ロッテ   31   27      5 0.534   9.0
      日本ハム   32   28      5 0.533   0.0
   楽天イーグルス   31   31      1 0.500   2.0
     オリックス   29   33      2 0.468   2.0
        西武   19   44      0 0.302  10.5

しかし、この場合、整った表として出力されていない。
ここで、pandasの、to_markdownを使い、整った表を出力できた。

修正したプログラムコード

import pandas as pd

# セントラルリーグのデータ
central_league_data = {
    "順位": [1, 2, 3, 4, 5, 6],
    "チーム": ["広島東洋カープ", "阪神タイガース", "読売ジャイアンツ", "横浜DeNAベイスターズ", "ヤクルトスワローズ", "中日ドラゴンズ"],
    "勝利数": [32, 32, 31, 32, 27, 27],
    "敗戦数": [25, 30, 30, 31, 33, 33],
    "引き分け数": [4, 4, 5, 1, 4, 5],
    "勝率": [0.561, 0.516, 0.5081, 0.5079, 0.45, 0.45],
    "ゲーム差": ["-", 2.5, 0.5, 1, 3.5, 3.5]
}

# パシフィックリーグのデータ
pacific_league_data = {
    "順位": [1, 2, 3, 4, 5, 6],
    "チーム": ["ソフトバンクホークス", "千葉ロッテマリーンズ", "日本ハムファイターズ", "東北楽天ゴールデンイーグルス", "オリックスバッファローズ", "埼玉西武ライオンズ"],
    "勝利数": [41, 31, 32, 31, 29, 19],
    "敗戦数": [19, 27, 28, 31, 33, 44],
    "引き分け数": [2, 5, 5, 1, 2, 0],
    "勝率": [0.683, 0.534, 0.533, 0.5, 0.468, 0.302],
    "ゲーム差": ["-", 9, 9, 2, 2, 10.5]
}

# DataFrameに変換
central_league_df = pd.DataFrame(central_league_data)
pacific_league_df = pd.DataFrame(pacific_league_data)

# 表示
print("セントラルリーグ順位表")
print(central_league_df.to_markdown(index=False, tablefmt="grid", floatfmt=".4f"))

print("\nパシフィックリーグ順位表")
print(pacific_league_df.to_markdown(index=False, tablefmt="grid", floatfmt=".4f"))

出力結果

セントラルリーグ順位表
+--------+----------------------+----------+----------+--------------+--------+------------+
|   順位 | チーム               |   勝利数 |   敗戦数 |   引き分け数 |   勝率 | ゲーム差   |
+========+======================+==========+==========+==============+========+============+
|      1 | 広島東洋カープ       |       32 |       25 |            4 | 0.5610 | -          |
+--------+----------------------+----------+----------+--------------+--------+------------+
|      2 | 阪神タイガース       |       32 |       30 |            4 | 0.5160 | 2.5        |
+--------+----------------------+----------+----------+--------------+--------+------------+
|      3 | 読売ジャイアンツ     |       31 |       30 |            5 | 0.5081 | 0.5        |
+--------+----------------------+----------+----------+--------------+--------+------------+
|      4 | 横浜DeNAベイスターズ |       32 |       31 |            1 | 0.5079 | 1          |
+--------+----------------------+----------+----------+--------------+--------+------------+
|      5 | ヤクルトスワローズ   |       27 |       33 |            4 | 0.4500 | 3.5        |
+--------+----------------------+----------+----------+--------------+--------+------------+
|      6 | 中日ドラゴンズ       |       27 |       33 |            5 | 0.4500 | 3.5        |
+--------+----------------------+----------+----------+--------------+--------+------------+

パシフィックリーグ順位表
+--------+------------------------------+----------+----------+--------------+--------+------------+
|   順位 | チーム                       |   勝利数 |   敗戦数 |   引き分け数 |   勝率 | ゲーム差   |
+========+==============================+==========+==========+==============+========+============+
|      1 | ソフトバンクホークス         |       41 |       19 |            2 | 0.6830 | -          |
+--------+------------------------------+----------+----------+--------------+--------+------------+
|      2 | 千葉ロッテマリーンズ         |       31 |       27 |            5 | 0.5340 | 9          |
+--------+------------------------------+----------+----------+--------------+--------+------------+
|      3 | 日本ハムファイターズ         |       32 |       28 |            5 | 0.5330 | 9          |
+--------+------------------------------+----------+----------+--------------+--------+------------+
|      4 | 東北楽天ゴールデンイーグルス |       31 |       31 |            1 | 0.5000 | 2          |
+--------+------------------------------+----------+----------+--------------+--------+------------+
|      5 | オリックスバッファローズ     |       29 |       33 |            2 | 0.4680 | 2          |
+--------+------------------------------+----------+----------+--------------+--------+------------+
|      6 | 埼玉西武ライオンズ           |       19 |       44 |            0 | 0.3020 | 10.5       |
+--------+------------------------------+----------+----------+--------------+--------+------------+

これで整った表として出力することができた。

考察

セントラルリーグの今後の展望

セントラルリーグでは、1位広島から4位横浜まで4ゲーム差、5位ヤクルトと6位中日まで7.5ゲーム差だ。まだ阪神タイガースも優勝圏内におり、球団史上初のセントラルリーグ連覇に期待してもいいだろう。

阪神タイガースが、セントラルリーグを連覇するには、投手力はいいだけに、もう少し打線が奮起する必要があると私は考えている。交流戦の平均得点も2.2点だったため、7勝11敗の借金4で交流戦を終えた。

阪神のAクラス入りの確率は68%、優勝確率24%,2位の確率は24%との統計が出ている。
広島のAクラス入りの確率は74%、優勝確率36%, 2位の確率は22%との統計が出ている。
これは、阪神と広島のゲーム差が2.5離れているから言えることだろう。

セントラルリーグのAクラス予想

セリーグのAクラスは阪神広島巨人との予想が高いだろう。
しかし、まだDeNA,中日、ヤクルトにも可能性がある。

パシフィックリーグの今後の展望

一方、パリーグに目を向けると、ソフトバンクホークスが2位ロッテと3位日本ハムに9ゲーム差も離している。柳田選手が怪我で離脱したにも関わらず、近藤山川栗原選手を始めとする強力クリーンアップで勝利を重ね続けている。交流戦の優勝こそは楽天イーグルスに譲ったが、それでも12勝6敗の2位で交流戦を終えた。

パシフィックリーグのAクラス予想

セントラルリーグとは対照的に、ソフトバンクが2位と9ゲームも離しているので、Aクラス入りする可能性は非常に高い。

ソフトバンクのAクラス入りは97%、優勝は71%との統計が出ている。
パリーグのAクラスはソフトバンク、日本ハム、ロッテとの予想が高いだろう。

引用元:https://eikai.co.jp/npb/

余談(ちなみに)

いずれにせよ、金曜日から再開する両リーグのリーグ戦が楽しみだ。
果たして阪神タイガースは、広島東洋カープから首位を奪い返して、昨年のように快進撃を続け、球団史上初のリーグ優勝を達成できるか目が離せない。

阪神タイガースは、金曜日から本拠地で横浜ベイスターズとの3連戦
ソフトバンクホークスは、金曜日から本拠地で千葉ロッテマリーンズとの3連戦に望む。

引用元:https://npb.jp/bis/2024/calendar/

一昨日のように、相手のバッテリーミスでサヨナラ勝ちするのではなく、ちゃんとした勝ち方で勝って欲しいのが私の本音だ。それには、もう少し打撃陣に奮起を求めたい。そうすれば、阪神タイガースのリーグ優勝の可能性も高まってくるだろう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0