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

wen 实用脚本 3

本文目录导读:

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

  1. 先定义统计口径
  2. Python 脚本示例
  3. 如果数据是逐球记录
  4. SQL 版本
  5. Excel 公式版
  6. 建议输出结果

要统计定位球得分占比,需要先明确几个口径,下面给你一个实用脚本模板,按你实际数据字段改一下就能跑。

先定义统计口径

定位球通常包括:

  • 角球
  • 任意球
  • 点球
  • 界外球发起进攻后得分(可选)
  • 间接任意球/二次进攻(可选)

总进球通常包括:

  • 运动战进球
  • 定位球进球
  • 乌龙球(可选是否计入)
  • 点球(有些统计把点球单列)

建议公式:

定位球得分占比 = 定位球进球数 / 总进球数 × 100%

如果点球单列:

定位球得分占比 = (角球 + 任意球 + 其他定位球) / 总进球 × 100%

Python 脚本示例

假设你有一份 Excel/CSV,字段如下:

球队 进球方式 进球数
A队 运动战 20
A队 角球 8
A队 任意球 3
A队 点球 4
B队 运动战 15
B队 角球 5

脚本 1:按球队统计定位球占比

import pandas as pd
# 1. 读取数据
df = pd.read_csv("goals.csv")  # 或 pd.read_excel("goals.xlsx")
# 2. 定义哪些算定位球
set_piece_types = ["角球", "任意球", "点球", "界外球", "定位球"]
# 3. 标记是否定位球
df["是否定位球"] = df["进球方式"].isin(set_piece_types)
# 4. 按球队汇总
total_goals = df.groupby("球队")["进球数"].sum()
set_piece_goals = (
    df[df["是否定位球"]]
    .groupby("球队")["进球数"]
    .sum()
)
# 5. 合并结果
result = pd.DataFrame({
    "总进球": total_goals,
    "定位球进球": set_piece_goals
}).fillna(0)
result["定位球占比"] = result["定位球进球"] / result["总进球"]
result["定位球占比%"] = (result["定位球占比"] * 100).round(2)
print(result)
# 6. 导出
result.to_excel("定位球占比统计.xlsx")

如果数据是逐球记录

字段可能是:

比赛ID 球队 进球时间 进球方式 是否定位球
1 A队 23 角球 是
1 A队 56 运动战 否

脚本:

import pandas as pd
df = pd.read_csv("matches_goals.csv")
# 如果已有“是否定位球”字段
df["是否定位球"] = df["是否定位球"].map({"是": True, "否": False})
# 总进球
total = df.groupby("球队").size().rename("总进球")
# 定位球进球
set_piece = (
    df[df["是否定位球"]]
    .groupby("球队")
    .size()
    .rename("定位球进球")
)
result = pd.concat([total, set_piece], axis=1).fillna(0)
result["定位球占比%"] = (result["定位球进球"] / result["总进球"] * 100).round(2)
print(result)

SQL 版本

如果数据在数据库:

SELECT
    球队,
    COUNT(*) AS 总进球,
    SUM(CASE WHEN 进球方式 IN ('角球','任意球','点球','界外球') THEN 1 ELSE 0 END) AS 定位球进球,
    ROUND(
        SUM(CASE WHEN 进球方式 IN ('角球','任意球','点球','界外球') THEN 1 ELSE 0 END) * 100.0 / COUNT(*),
        2
    ) AS 定位球占比百分比
FROM goals
GROUP BY 球队;

Excel 公式版

如果数据在 Excel:

总进球:

=SUMIF(A:A, "A队", C:C)

定位球进球:

=SUMIFS(C:C, A:A, "A队", B:B, "角球")
+ SUMIFS(C:C, A:A, "A队", B:B, "任意球")
+ SUMIFS(C:C, A:A, "A队", B:B, "点球")

定位球占比:

=定位球进球 / 总进球

建议输出结果

球队 总进球 定位球进球 定位球占比%
A队 35 15 86
B队 20 5 00

如果你把数据格式发我,

球队,进球方式,进球数
A队,运动战,20
A队,角球,8
...

我可以直接帮你改成能一键运行的完整脚本。

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