本文目录导读:

你要统计“直塞球成功率”,需要先明确数据来源和判定口径,下面给你一个可直接改用的 Python 脚本模板,并说明统计逻辑。
先定义“直塞球成功率”
通常计算方式:
[ 直塞球成功率 = \frac{成功直塞次数}{直塞总次数} \times 100\% ]
需要明确:
- 直塞球:向前穿透防线、送入防线身后或肋部空当的传球(通常用数据商标签,如
through_ball、key_pass中的直塞类型) - 成功直塞:接球队友在可控范围内接到球,且未出界/未被拦截
- 失败直塞:被拦截、出界、传大、队友未接到
假设你的数据格式
假设你有一个 CSV,字段如下:
match_id,player,team,pass_type,outcome 1,张三,A队,through_ball,success 1,张三,A队,through_ball,fail 1,李四,A队,through_ball,success 2,张三,A队,through_ball,success 2,王五,B队,through_ball,fail
统计脚本(按球员/球队)
import pandas as pd
# 读取数据
df = pd.read_csv("passes.csv")
# 筛选直塞球(根据你的数据标签调整)
through = df[df["pass_type"].str.lower().isin(["through_ball", "直塞", "through pass"])].copy()
# 统一结果字段
through["is_success"] = through["outcome"].str.lower().isin(["success", "成功", "completed"])
# 按球员统计
player_stats = through.groupby(["team", "player"]).agg(
直塞总次数=("is_success", "size"),
直塞成功次数=("is_success", "sum")
).reset_index()
player_stats["直塞成功率(%)"] = (
player_stats["直塞成功次数"] / player_stats["直塞总次数"] * 100
).round(2)
print(player_stats.sort_values("直塞成功率(%)", ascending=False))
# 按球队统计
team_stats = through.groupby("team").agg(
直塞总次数=("is_success", "size"),
直塞成功次数=("is_success", "sum")
).reset_index()
team_stats["直塞成功率(%)"] = (
team_stats["直塞成功次数"] / team_stats["直塞总次数"] * 100
).round(2)
print(team_stats)
如果你只有事件数据(需要自己判定直塞)
如果你的数据没有 pass_type 标签,可以用简化规则近似:
# 近似规则:向前传球 + 传球距离 > 15m + 目标点在防线身后 # 需要字段:start_x, start_y, end_x, end_y, opponent_def_line_x df["is_forward"] = df["end_x"] > df["start_x"] df["is_long_enough"] = ((df["end_x"]-df["start_x"])**2 + (df["end_y"]-df["start_y"])**2)**0.5 > 15 df["behind_defense"] = df["end_x"] > df["opponent_def_line_x"] df["is_through_ball"] = df["is_forward"] & df["is_long_enough"] & df["behind_defense"]
注意:这种近似误差较大,正式统计建议用 Opta / StatsBomb / Wyscout 的
through_ball
输出示例
team player 直塞总次数 直塞成功次数 直塞成功率(%)
0 A队 张三 10 7 70.0
1 A队 李四 5 2 40.0
2 B队 王五 8 3 37.5
你需要提供的信息
要帮你写成真正可运行的脚本,请告诉我:
- 数据格式(CSV / JSON / API / 数据库?)
- 字段名(传球类型、结果、球员、球队)
- “直塞球”和“成功”的判定标准
- 统计维度(按球员 / 球队 / 比赛 / 赛季)
如果你把一小段样例数据贴出来,我可以直接帮你改成能跑的版本。
版权声明:本站文章为原创整理,转载请注明出处。