本文目录导读:

你问的“这个开源项目”具体是哪个,我这边没有上下文,所以先按最常见的两类开源项目来回答,你可以对照一下你实际指的是哪一种:
如果你说的是足球数据分析类开源项目
soccerdata、StatsBombPy、FBref scraper、understat、football-data、kloppy 这类,看“半场结束前攻势”通常有几种做法:
按时间段切分事件数据
大多数项目的事件数据(events)里都有 minute 和 period 字段:
# 伪代码示例
first_half_late = events[
(events['period'] == 1) &
(events['minute'] >= 40)
]
period == 1→ 上半场minute >= 40→ 半场结束前 5 分钟(含补时看minute是否 >45)
用“进攻动作”筛选
常见进攻类事件类型:
Shot/Shot on targetPass into final third/Pass into boxCarry into final thirdCorner/Free kickPressure(防守方视角)
attacks = first_half_late[
first_half_late['type'].isin(['Shot', 'Pass', 'Carry']) &
(first_half_late['end_x'] > 80) # 进入进攻三区
]
计算“攻势强度”指标
可以用这些量化:
- xG(预期进球):半场前 5 分钟累计 xG
- 进攻三区触球数
- 射门数 / 射正数
- 角球数
- PPDA(防守强度反向指标)
可视化
- 用
mplsoccer画半场结束前的进攻方向箭头图 / 热图 - 用
matplotlib画时间轴上的攻势曲线
如果你说的是某个具体的 GitHub 项目
请告诉我项目名或链接,我可以直接帮你:
- 找到它读取比赛事件的代码入口
- 指出哪个字段表示半场 / 时间
- 给你一段可直接跑的筛选“半场结束前攻势”的代码
如果你说的是篮球 / 电竞类项目
规则不同:
- 篮球看 2 分钟(clutch time) 的回合
- 电竞(如 Dota2/LOL)看 半场前最后几分钟的团战 / 推进
处理逻辑类似:按时间字段切分 + 按事件类型筛选。
你可以补充一下:
- 项目名 / GitHub 链接
- 是足球、篮球还是其他
- 你想输出的是数据表还是可视化图
我再给你具体到函数和字段的答案。