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

wen 实用脚本 3

本文目录导读:

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

  1. 先定义统计口径
  2. 假设数据结构
  3. Python 统计脚本
  4. 如果你用的是 JSON / API 数据
  5. 需要你确认的 3 件事

要统计“脚后跟传球成功几次”,需要先明确数据来源和统计口径,下面给你一个可落地的 Python 脚本框架,假设你有一份传球事件数据(CSV 或 JSON),包含传球方式、是否成功等字段。


先定义统计口径

统计“脚后跟传球成功”通常需要满足:

  1. 传球方式 = 脚后跟(backheel / heel pass)
  2. 传球结果 = 成功(成功找到队友 / 未被拦截)
  3. 可选:按球员、比赛、时间段分组统计

假设数据结构

假设你有一份 passes.csv,字段如下:

字段 说明
player 球员名
match_id 比赛ID
pass_type 传球方式(如 foot, header, backheel)
outcome 结果(success / fail / intercepted)
minute 分钟

示例:

player,match_id,pass_type,outcome,minute
Messi,001,backheel,success,23
Messi,001,backheel,fail,45
Xavi,001,backheel,success,60
Xavi,001,foot,success,70

Python 统计脚本

import pandas as pd
# 1. 读取数据
df = pd.read_csv("passes.csv")
# 2. 统一字段值(防止大小写/空格问题)
df["pass_type"] = df["pass_type"].str.strip().str.lower()
df["outcome"] = df["outcome"].str.strip().str.lower()
# 3. 筛选脚后跟传球
backheel = df[df["pass_type"].isin(["backheel", "heel", "脚后跟"])]
# 4. 筛选成功
backheel_success = backheel[backheel["outcome"].isin(["success", "successful", "成功"])]
# 5. 总成功次数
total_success = len(backheel_success)
print(f"脚后跟传球成功总次数:{total_success}")
# 6. 按球员统计
by_player = (
    backheel_success.groupby("player")
    .size()
    .reset_index(name="backheel_success_count")
    .sort_values("backheel_success_count", ascending=False)
)
print("\n按球员统计:")
print(by_player)
# 7. 按比赛统计
by_match = (
    backheel_success.groupby("match_id")
    .size()
    .reset_index(name="backheel_success_count")
)
print("\n按比赛统计:")
print(by_match)
# 8. 导出结果
by_player.to_csv("backheel_success_by_player.csv", index=False)

如果你用的是 JSON / API 数据

如果是 StatsBomb、Opta、Wyscout 等事件数据,字段名不同,核心逻辑一样:

# 示例:StatsBomb 风格
# pass_type 可能是 pass.height / pass.body_part / pass.technique
# 脚后跟通常标记为 pass.technique == "Backheel"
events = [...]  # 你的事件列表
backheel_success = [
    e for e in events
    if e.get("type", {}).get("name") == "Pass"
    and e.get("pass", {}).get("technique", {}).get("name") == "Backheel"
    and e.get("pass", {}).get("outcome", {}).get("name") is None  # 无 outcome = 成功
]
print(len(backheel_success))

注意:不同数据源“成功”的定义不同,StatsBomb 中传球没有 outcome 字段通常表示成功;Opta 中 outcome=1 表示成功。


需要你确认的 3 件事

为了给你更精确的脚本,请告诉我:

  1. 数据来源:CSV / Excel / JSON / API(StatsBomb、Opta、Wyscout、FIFA 等)?
  2. 字段名:传球方式和成功与否分别叫什么?
  3. 统计维度:只要总次数,还是按球员/比赛/赛季分组?

你把这三点补上,我可以直接给你一份能跑的完整脚本。

上一篇这个实用脚本怎么看受伤后的心态波动?

下一篇当前分类已是最新一篇

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