这个python案例显示人盯人防守成功率?

wen python案例 1

本文目录导读:

这个python案例显示人盯人防守成功率?

  1. 指标定义(先明确口径)
  2. 可直接运行的 Python 示例
  3. 输出示例
  4. 要更贴近真实比赛,建议补充的字段
  5. 需要你补充的信息

我理解你想了解如何用 Python 分析/展示人盯人防守成功率,不过你这条消息里并没有附上具体的 Python 案例代码或数据,所以我先给你一个可直接套用的完整示例框架,你再把实际数据替换进去即可。

指标定义(先明确口径)

人盯人防守成功率通常可定义为:

防守成功率 = 成功防守回合数 / 总防守回合数 × 100%

“成功防守”可按你的业务定义,

  • 对手该回合未得分
  • 对手命中率低于阈值
  • 未让对位球员接球/出手
  • 未发生被过人、失位

可直接运行的 Python 示例

import pandas as pd
import matplotlib.pyplot as plt
# 1) 模拟数据:每个防守回合一行
data = {
    "possession_id": range(1, 21),
    "defender": ["A"]*10 + ["B"]*10,
    "defense_type": ["man_to_man"]*20,
    "opponent_scored": [0,1,0,0,1,0,0,1,0,0,
                        1,0,0,1,0,1,0,0,1,0],  # 1=对手得分
    "beaten": [0,1,0,0,0,0,1,0,0,0,
               1,0,0,0,0,1,0,0,1,0]           # 1=被过人/失位
}
df = pd.DataFrame(data)
# 2) 定义成功防守:对手未得分 且 未被过人
df["success"] = ((df["opponent_scored"] == 0) & (df["beaten"] == 0)).astype(int)
# 3) 只看人盯人防守
mtm = df[df["defense_type"] == "man_to_man"]
# 4) 计算整体成功率
overall_rate = mtm["success"].mean() * 100
print(f"人盯人防守整体成功率: {overall_rate:.2f}%")
# 5) 按防守人统计
by_defender = (
    mtm.groupby("defender")["success"]
       .agg(回合数="count", 成功数="sum", 成功率=lambda x: x.mean()*100)
       .reset_index()
)
print(by_defender)
# 6) 可视化
plt.rcParams["font.sans-serif"] = ["SimHei"]  # Windows 中文
plt.rcParams["axes.unicode_minus"] = False
plt.figure(figsize=(6,4))
plt.bar(by_defender["defender"], by_defender["成功率"], color=["#4C72B0","#DD8452"])
plt.axhline(overall_rate, color="red", linestyle="--", label=f"整体 {overall_rate:.1f}%")
plt.ylabel("防守成功率 (%)")"人盯人防守成功率(按防守人)")
plt.ylim(0, 100)
plt.legend()
plt.tight_layout()
plt.show()

输出示例

人盯人防守整体成功率: 60.00%
  defender  回合数  成功数    成功率
0        A     10     7   70.0
1        B     10     5   50.0

并生成一张按防守人对比的柱状图,红色虚线为整体成功率。

要更贴近真实比赛,建议补充的字段

字段 说明
match_id 比赛 ID
quarter 节次
ball_handler 对位进攻球员
screen_used 是否被掩护
closeout 是否 closeout 防守
contest_level 干扰程度(0-1)
points_allowed 该回合失分

有了这些字段,就能进一步算:

  • 按对位球员的成功率
  • 按节次/关键时刻的成功率
  • 被掩护后 vs 无掩护的成功率
  • 结合失分算 每回合失分(PPP)

需要你补充的信息

如果你手头有具体的案例代码/数据(CSV、Excel、或一段 Python),发给我,我可以帮你:

  1. 检查口径是否正确
  2. 修 bug
  3. 加上更专业的可视化(热图、对位矩阵、雷达图)

你现在的案例是从哪来的(课程作业 / 体育数据项目 / 自己写的)?告诉我场景,我可以把上面的模板改成更贴合你需求的版本。

友情链接

欧易欧易欧易欧易欧易欧易欧易欧易欧易欧易欧易欧易欧易欧易欧易欧易

上一篇WordPress 教程:备份策略 的完整做法

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

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

友情链接攻略窝 · 礼包窝 · 配置窝 · 换算窝 · 算法窝 · 查文窝 · 手册窝 · 问答窝 · 全文搜 · 手册库
相关站点礼包窝 · 查文窝