实用脚本统计定位球得分占比多少?

wen 实用脚本 1

统计定位球得分占比

下面给你一个可直接用的 Python 脚本,用于统计一支球队(或一批比赛)中定位球得分占总进球的百分比

实用脚本统计定位球得分占比多少?


数据准备(CSV 格式最方便)

新建 goals.csv,字段示例:

match_id,team,goal_type
1,主队,运动战
1,主队,角球
1,客队,任意球
1,客队,运动战
2,主队,点球
2,主队,角球
2,客队,运动战

goal_type 建议统一为以下几类:

  • 运动战
  • 角球
  • 任意球
  • 点球
  • 定位球(其他,如界外球、间接任意球)

Python 脚本

import pandas as pd
# 1. 读取数据
df = pd.read_csv("goals.csv")
# 2. 定义哪些属于“定位球”
SET_PIECE_TYPES = {"角球", "任意球", "点球", "定位球"}
# 3. 标记
df["is_set_piece"] = df["goal_type"].isin(SET_PIECE_TYPES)
# 4. 总体统计
total_goals = len(df)
set_piece_goals = df["is_set_piece"].sum()
ratio = set_piece_goals / total_goals * 100 if total_goals else 0
print(f"总进球数:{total_goals}")
print(f"定位球进球:{set_piece_goals}")
print(f"定位球得分占比:{ratio:.2f}%")
# 5. 分球队统计
team_stats = df.groupby("team").agg(
    总进球=("goal_type", "count"),
    定位球进球=("is_set_piece", "sum"),
)
team_stats["定位球占比(%)"] = (
    team_stats["定位球进球"] / team_stats["总进球"] * 100
).round(2)
print("\n=== 各队定位球占比 ===")
print(team_stats)
# 6. 导出结果
team_stats.to_csv("set_piece_ratio.csv", encoding="utf-8-sig")
print("\n已导出:set_piece_ratio.csv")

进阶:按赛事/阶段统计

CSV 里还有 competition(赛事)或 stage(阶段)字段,改一下分组即可:

group_stats = df.groupby(["competition", "team"]).agg(
    总进球=("goal_type", "count"),
    定位球进球=("is_set_piece", "sum"),
)
group_stats["定位球占比(%)"] = (
    group_stats["定位球进球"] / group_stats["总进球"] * 100
).round(2)
print(group_stats)

常见分类口径参考

统计口径 是否算定位球
角球直接/二次进攻得分
任意球直接破门
点球 ✅(有些统计会单列)
界外球战术得分 ✅(可算可不算)
门球发起进攻
运动战渗透

建议:点球是否计入会影响结果约 5–10 个百分点,写报告时注明口径。


示例输出

总进球数:7
定位球进球:4
定位球得分占比:57.14%
=== 各队定位球占比 ===
     总进球  定位球进球  定位球占比(%)
team                        
主队      4      3      75.0
客队      3      1      33.3

如果你告诉我:

  1. 数据来源(Excel / 手动录入 / API)
  2. 是否需要按赛事、按赛季、按球队对手多维透视
  3. 点球是否单独统计

我可以帮你把脚本改成对应的版本。

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