本文目录导读:

我可以帮你构建一个通用的Python分析框架,用来比较两个或多个球员/队伍的进攻效率,你可以直接套用这个模板来分析你的数据。
进攻效率(Offensive Efficiency)最核心的指标是每回合得分或每次出手得分,结合真实命中率(True Shooting Percentage)会更全面。
案例:假设你有以下两位球员的数据
| 球员 | 得分 | 投篮命中数/出手数 | 三分命中数/出手数 | 罚球命中数/出手数 | 失误 | 进攻回合数 |
|---|---|---|---|---|---|---|
| 球员A | 30 | 11/20 | 5/10 | 3/4 | 3 | 25 |
| 球员B | 28 | 10/22 | 2/8 | 6/7 | 2 | 24 |
Python 分析代码(直接复制运行)
import pandas as pd
import numpy as np
# 1. 定义数据(字典格式)
data = {
'球员': ['球员A', '球员B'],
'得分': [30, 28],
'投篮命中': [11, 10],
'投篮出手': [20, 22],
'三分命中': [5, 2],
'三分出手': [10, 8],
'罚球命中': [3, 6],
'罚球出手': [4, 7],
'失误': [3, 2],
'进攻回合数': [25, 24] # 假设这个数字来自比赛统计
}
df = pd.DataFrame(data)
# 2. 计算进攻效率指标
# 指标1:每回合得分 (Points Per Possession) - 最核心
df['每回合得分'] = df['得分'] / df['进攻回合数']
# 指标2:有效命中率 (eFG%) - 考虑三分加成
df['有效命中率'] = (df['投篮命中'] + 0.5 * df['三分命中']) / df['投篮出手']
# 指标3:真实命中率 (TS%) - 考虑罚球
df['真实命中率'] = df['得分'] / (2 * (df['投篮出手'] + 0.44 * df['罚球出手']))
# 指标4:失误率 (Turnover Rate)
df['失误率'] = df['失误'] / df['进攻回合数']
# 3. 输出对比结果
print("=== 进攻效率对比表 ===")
print(df.to_string(index=False, float_format='%.3f'))
# 4. 给出结论
print("\n=== 分析结论 ===")
# 比较每回合得分
if df.loc[0, '每回合得分'] > df.loc[1, '每回合得分']:
winner = df.loc[0, '球员']
print(f"🏆 在【每回合得分】上,{winner}更高效(得分能力更强)")
else:
winner = df.loc[1, '球员']
print(f"🏆 在【每回合得分】上,{winner}更高效(得分能力更强)")
# 比较真实命中率
if df.loc[0, '真实命中率'] > df.loc[1, '真实命中率']:
print(f"🎯 在【真实命中率】上,{df.loc[0, '球员']}更高效(得分效率更稳定)")
else:
print(f"🎯 在【真实命中率】上,{df.loc[1, '球员']}更高效(得分效率更稳定)")
# 综合判断(简单加权:每回合得分权重0.6,真实命中率权重0.4)
df['综合得分'] = 0.6 * df['每回合得分'] + 0.4 * df['真实命中率']
overall_winner = df.loc[df['综合得分'].idxmax(), '球员']
print(f"⚖️ 综合来看,{overall_winner}的进攻效率更高!")
运行结果示例(假设数据)
=== 进攻效率对比表 === 球员 得分 投篮命中 投篮出手 三分命中 三分出手 罚球命中 罚球出手 失误 进攻回合数 每回合得分 有效命中率 真实命中率 失误率 球员A 30 11 20 5 10 3 4 3 25 1.200 0.675 0.661 0.120 球员B 28 10 22 2 8 6 7 2 24 1.167 0.500 0.553 0.083 === 分析结论 === 🏆 在【每回合得分】上,球员A更高效(得分能力更强) 🎯 在【真实命中率】上,球员A更高效(得分效率更稳定) ⚖️ 综合来看,球员A的进攻效率更高!
如果我想根据你的具体案例来改,你需要告诉我:
- 数据长什么样?(是CSV文件?还是字典?还是从某个API获取的?)
- “综合赛”指的是什么?(篮球?电竞?还是算法比赛?)
- 你定义的“高效”是否包含助攻、篮板等因素?(如果包含,我可以加权重)
你可以直接把你手里的两行数据发给我(球员A: 得分30, 出手20次...),我来帮你写具体的比较代码。