实用脚本怎么看两队边路突破能力对比?

wen 实用脚本 2

如何用数据脚本对比两队边路突破能力

想看两队边路突破能力对比,核心是把“边路突破”拆成可量化的指标,再用脚本抓取/计算,下面给一套实用思路和示例代码。

实用脚本怎么看两队边路突破能力对比?

先定义指标(拆解“边路突破能力”)

维度 具体指标 数据来源
突破量 边路成功过人次数、边路带球推进次数 Opta/StatsBomb/FBref
突破效率 边路过人成功率、每90分钟边路过人 同上
威胁产出 边路传中次数/成功率、边路创造射门、下底传中 同上
空间占据 边路触球占比、边路进攻三区触球 事件数据坐标
对抗 边路1v1成功、被犯规次数 事件数据

关键:用事件数据的坐标把“边路”筛出来(一般 x 靠近边线、y 在两侧区域),再统计过人/传中事件。

脚本实现思路(Python 示例)

用 StatsBomb 开放数据(免费)做事件筛选

import pandas as pd
from statsbombpy import sb
# 取一场比赛事件
events = sb.events(match_id=3788741)  # 示例 match_id
# 筛选过人事件,并按坐标判断是否在边路
def is_wide(loc, pitch_width=80, wide_ratio=0.25):
    if not isinstance(loc, list): return False
    y = loc[1]
    return y < pitch_width*wide_ratio or y > pitch_width*(1-wide_ratio)
dribbles = events[events['type'] == 'Dribble'].copy()
dribbles['wide'] = dribbles['location'].apply(is_wide)
dribbles['success'] = dribbles['dribble_outcome'] == 'Complete'
# 按球队汇总边路突破
summary = dribbles[dribbles['wide']].groupby('team').agg(
    wide_dribbles=('success', 'size'),
    wide_success=('success', 'sum'),
    success_rate=('success', 'mean')
).reset_index()
print(summary)

加传中与推进,形成“边路突破综合评分”

# 传中事件(Cross)
crosses = events[events['type'] == 'Pass']
crosses = crosses[crosses['pass_type'] == 'Cross']
crosses['wide'] = crosses['location'].apply(is_wide)
cross_summary = crosses[crosses['wide']].groupby('team').agg(
    wide_crosses=('id', 'size')
).reset_index()
# 合并
final = summary.merge(cross_summary, on='team', how='left').fillna(0)
# 简单加权评分(可按需调整权重)
final['wide_break_score'] = (
    final['wide_success']*1.0 +
    final['wide_crosses']*0.5 +
    final['success_rate']*10
)
print(final.sort_values('wide_break_score', ascending=False))

可视化对比

import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 3, figsize=(12,4))
for i, col in enumerate(['wide_success','wide_crosses','success_rate']):
    final.plot.bar(x='team', y=col, ax=ax[i], legend=False)
    ax[i].set_title(col)
plt.tight_layout()
plt.show()

实操要点

  1. 坐标要归一化:不同数据源场地尺寸不同(StatsBomb 120×80,Opta 100×100),先统一再判边路。
  2. 区分左右边:可按 y 值再拆 left/right,看球队是否偏一侧突破。
  3. 样本量:单场噪声大,建议按赛季或近 N 场聚合,用每90分钟标准化。
  4. 成功率要加样本门槛:过人次数太少时成功率不可靠,可设 min_dribbles >= 20。
  5. 数据源选择:
    • 免费:StatsBomb 开放数据、FBref(部分)
    • 付费:Opta、Wyscout、StatsBomb 全量
  6. 权重可调:突破量 vs 效率 vs 威胁产出,按你关注点调评分公式,避免“拍脑袋”。

一句话总结

脚本 = 事件数据筛边路坐标 → 统计过人/传中量与成功率 → 加权评分 → 可视化对比,先把指标定义清楚,脚本只是流水线,权重和边路阈值才是分析质量的关键。

需要的话我可以帮你写一个适配具体数据源(Opta/Wyscout/FBref CSV)的完整脚本模板。

抱歉,评论功能暂时关闭!