实用脚本统计脚后跟传球成功几次?

wen 实用脚本 3

本文目录导读:

实用脚本统计脚后跟传球成功几次?

  1. 先判断你的数据属于哪一类
  2. 如果你有事件级数据:Python 脚本模板
  3. 关键坑点(很容易错)
  4. 如果你没有事件数据,实用替代方案

“脚后跟传球成功几次”这种统计,不是靠一个通用脚本就能凭空算出来的,它依赖你手上的数据源,不同数据源能支持的统计粒度差别很大,下面我给你一个可落地的判断 + 脚本框架,你按自己的数据情况套用即可。


先判断你的数据属于哪一类

A. 事件级数据(最理想)

Opta / StatsBomb / Wyscout / 自有标注数据,事件里有:

  • 传球事件
  • 传球部位/技术字段(如 pass_body_part = heel 或 pass_technique = backheel)
  • 成功/失败字段

✅ 这种情况可以直接用脚本统计。

B. 视频数据(最麻烦)

只有比赛视频,没有事件标签。 ❌ 不能靠简单脚本统计,需要:

  • 目标检测 + 姿态估计 + 球轨迹跟踪
  • 或人工标注 这不是“实用脚本”能解决的,成本很高。

C. 只有统计表/文字直播

比如只有“传球成功率”这种汇总数据。 ❌ 无法统计脚后跟传球,因为粒度不够。


如果你有事件级数据:Python 脚本模板

假设你的数据是 DataFrame,列名类似:

  • player
  • event_type(pass)
  • pass_body_part(heel)
  • pass_outcome(complete / incomplete)
import pandas as pd
# 读取数据
df = pd.read_csv("events.csv")
# 筛选:传球 + 脚后跟
heel_passes = df[
    (df["event_type"] == "pass") &
    (df["pass_body_part"].str.lower() == "heel")
]
# 统计成功次数
successful_heel_passes = heel_passes[
    heel_passes["pass_outcome"].str.lower() == "complete"
]
# 按球员统计
result = (
    successful_heel_passes
    .groupby("player")
    .size()
    .reset_index(name="successful_heel_passes")
    .sort_values("successful_heel_passes", ascending=False)
)
print(result)

如果你要统计全队总数:

total = len(successful_heel_passes)
print("脚后跟传球成功次数:", total)

关键坑点(很容易错)

  1. “脚后跟”字段不一定叫 heel
    有的数据叫 backheel、heel_pass、technique=backheel,要先看数据字典。

  2. 成功定义要统一
    是“传给队友”算成功,还是“队友接到且没丢”算成功?不同数据源定义不同。

  3. 脚后跟传球可能被归到“其他部位”
    部分数据源只标 foot,不细分脚跟,那就统计不了。

  4. 不要用传球成功率反推次数
    成功率是比例,反推会因四舍五入出错。


如果你没有事件数据,实用替代方案

  • 人工标注小样本:选几场,用视频逐次标“脚后跟传球 + 成功/失败”,算场均。
  • 用现成平台筛选:StatsBomb IQ、Wyscout、SofaScore 部分赛事有技术动作筛选。
  • 简化目标:只统计“脚后跟传球次数”,不区分成功,人工看视频更快。

  • 有事件级数据 + 部位字段:上面脚本直接能用,改列名即可。
  • 只有视频:别指望通用脚本,需要标注或计算机视觉方案。
  • 只有汇总统计:统计不了。

如果你告诉我你的数据长什么样(列名/来源/是否有部位字段),我可以帮你把脚本改成直接可跑的版本。

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