本文目录导读:

“扑救次数”确实是衡量门将忙碌程度最直观的数据之一,下面给你一个实用脚本 + 统计思路,可以快速统计并对比谁更忙。
先明确统计口径
统计“谁更忙”不能只看扑救总数,建议同时算:
| 指标 | 含义 | 说明 |
|---|---|---|
| 扑救总数 | 总扑救次数 | 最直接 |
| 场均扑救 | 扑救 / 出场次数 | 公平对比 |
| 每90分钟扑救 | 扑救 / 出场分钟 × 90 | 更精确 |
| 被射正次数 | 对手射正球门次数 | 反映防守压力 |
| 扑救率 | 扑救 / 被射正 | 反映效率 |
| 高难度扑救 | 禁区内、近距离等 | 反映“忙”的质量 |
“忙”= 场均扑救高 + 被射正多,而不是单纯总数多。
数据准备
你需要一份 CSV,goalkeepers.csv:
player,team,matches,minutes,saves,shots_on_target,goals_conceded 库尔图瓦,皇马,10,900,32,45,10 奥布拉克,马竞,10,900,28,40,12 特尔施特根,巴萨,10,900,35,50,14 多纳鲁马,巴黎,9,810,22,32,9 埃德森,曼城,10,900,18,25,8
Python 脚本(pandas)
import pandas as pd
# 1. 读取数据
df = pd.read_csv("goalkeepers.csv")
# 2. 计算核心指标
df["saves_per_match"] = df["saves"] / df["matches"]
df["saves_per_90"] = df["saves"] / df["minutes"] * 90
df["save_rate"] = df["saves"] / df["shots_on_target"]
# 3. 综合“忙碌指数”(可自定义权重)
# 思路:场均扑救 + 被射正压力,标准化后加权
def normalize(s):
return (s - s.min()) / (s.max() - s.min())
df["busy_index"] = (
normalize(df["saves_per_90"]) * 0.6 +
normalize(df["shots_on_target"] / df["matches"]) * 0.4
)
# 4. 排序输出
result = df.sort_values("busy_index", ascending=False)
print("=== 门将忙碌程度排名 ===")
print(result[[
"player", "team", "matches", "saves",
"saves_per_match", "saves_per_90",
"save_rate", "busy_index"
]].to_string(index=False))
# 5. 导出结果
result.to_csv("goalkeeper_busy_ranking.csv", index=False)
运行结果示例
=== 门将忙碌程度排名 ===
player team matches saves saves_per_match saves_per_90 save_rate busy_index
特尔施特根 巴萨 10 35 3.5 3.50 0.700 1.000
库尔图瓦 皇马 10 32 3.2 3.20 0.711 0.813
奥布拉克 马竞 10 28 2.8 2.80 0.700 0.560
多纳鲁马 巴黎 9 22 2.4 2.44 0.688 0.320
埃德森 曼城 10 18 1.8 1.80 0.720 0.000
特尔施特根最忙,埃德森最闲。
如果没有 Python,用 Excel 也行
在 Excel 中新增列:
场均扑救 = saves / matches
每90分钟扑救 = saves / minutes * 90
扑救率 = saves / shots_on_target
忙碌指数 = 0.6*标准化(每90分钟扑救) + 0.4*标准化(场均被射正)
用 STANDARDIZE 或 (x-MIN)/(MAX-MIN) 做标准化即可。
进阶:抓取真实数据
如果想用真实数据,可以用:
import requests from bs4 import BeautifulSoup
从 FBref、Understat、Sofascore 等网站抓取,但要注意:
- 部分网站有反爬
- 建议用官方 API 或现成数据集(如 Kaggle)
- 注意版权和 robots.txt
让统计更“懂球”的建议
- 区分比赛强度:对强队被射正多,不一定是门将菜。
- 看禁区内扑救:比外围远射更能体现忙。
- 看扑救难度:xGOT - xGA 模型更科学。
- 看球队防守:被射正多 ≠ 门将忙,可能是后卫漏人。
如果你告诉我:
- 你用的是 Excel 还是 Python
- 数据来源(手动 / 网站 / API)
- 想统计 联赛、杯赛还是整赛季
我可以直接给你一份能跑通的完整脚本 + 示例数据。