足球比赛中场控制力对比的分析脚本思路
看两队中场控制力对比,可以从数据脚本 + 指标框架两个层面入手,下面给你一套可落地的分析框架和示例脚本。

核心指标体系(先定"看什么")
中场控制力本质是"谁能把球权留在自己脚下、并把球推进到危险区域",可拆成四类指标:
| 维度 | 具体指标 | 说明 |
|---|---|---|
| 控球 | 控球率、传球次数、传球成功率 | 基础盘 |
| 推进 | 向前传球占比、 progressive passes、进入进攻三区次数 | 能否往前送 |
| 压迫/反抢 | PPDA(防守动作/对方传球)、中场抢断、拦截、夺回球权次数 | 丢球后能否抢回 |
| 质量 | 中场球员xA(预期助攻)、关键传球、带球推进距离 | 控制是否转化为威胁 |
关键:单看控球率会骗人(弱队摆大巴也能有控球),要控球 + PPDA + 推进三者结合看。
脚本实现(Python 示例)
假设你有事件数据(如 StatsBomb / Opta 格式),核心逻辑如下:
import pandas as pd
def midfield_control(events, team, pitch_length=105):
df = events[events['team'] == team]
# 1. 控球与传球
passes = df[df['type'] == 'Pass']
pass_count = len(passes)
pass_acc = passes['pass_outcome'].isna().mean() # 未失败=成功
# 2. 向前推进(传球终点比起点更靠近对方球门)
passes['progress'] = passes['end_x'] - passes['x']
progressive = (passes['progress'] > 10).sum() # 推进>10米的传球
# 3. 进入进攻三区(x > 2/3 场长)
final_third = (passes['end_x'] > pitch_length * 2/3).sum()
# 4. 反抢/防守(中场区域)
mid_zone = df[(df['x'] > pitch_length/3) & (df['x'] < pitch_length*2/3)]
tackles = (mid_zone['type'] == 'Tackle').sum()
interceptions = (mid_zone['type'] == 'Interception').sum()
recoveries = (mid_zone['type'] == 'Ball Recovery').sum()
return {
'传球数': pass_count,
'传球成功率': round(pass_acc, 3),
'向前传球(>10m)': progressive,
'进入进攻三区': final_third,
'中场抢断': tackles,
'中场拦截': interceptions,
'中场夺回球权': recoveries,
}
# 对比两队
home = midfield_control(events, 'Team A')
away = midfield_control(events, 'Team B')
comparison = pd.DataFrame({'主队': home, '客队': away})
comparison['差值'] = comparison['主队'] - comparison['客队']
print(comparison)
PPDA 单独算(压迫强度,越低压迫越强):
def ppda(events, defending_team, opp_team):
# 对方在后场(自家2/3区域)的传球数
opp_passes = events[(events['team']==opp_team) &
(events['type']=='Pass') &
(events['x'] < 70)].shape[0]
# 防守方在该区域的防守动作
def_actions = events[(events['team']==defending_team) &
(events['type'].isin(['Tackle','Interception','Foul','Pressure'])) &
(events['x'] < 70)].shape[0]
return round(opp_passes / max(def_actions,1), 2)
没有事件数据时,可用免费替代:FBref(
soccerdata库)、Understat、Wyscout 公开数据,或 API-Football。
怎么看结果(解读要点)
- 控球率高 + PPDA低 + 推进多 → 真正掌控中场(压制型)
- 控球率高 + PPDA高 + 推进少 → 无效控球(倒脚型)
- 控球率低 + 夺回球权多 + 向前传球多 → 高效反击型中场
- 中场抢断/拦截高但传球成功率低 → 破坏型中场,控制力弱
建议可视化:把两队指标做成雷达图(控球/推进/压迫/质量四个轴),一眼看出风格差异。
进阶(可选)
- 用 xT(expected threat) 或 VAEP 衡量中场传球的实际威胁增量,比单纯传球数更准
- 按中场球员位置(6号/8号/10号)细分,看是哪类中场在主导
- 滚动窗口(如每15分钟)看控制力随时间变化,识别体能/换人影响
需要的话,我可以帮你:
- 按你手头的数据格式(StatsBomb/Wyscout/CSV)改写脚本
- 生成雷达图对比的可视化代码
- 给一份现成的指标对照表模板
你现在的数据源是什么?
版权声明:本站文章为原创整理,转载请注明出处。