Python案例:协防补位成功次数统计
下面给你几个不同层次的实现案例,从简单到实战。

基础统计(字典计数)
# 协防补位记录:每条记录为 (防守球员, 是否成功)
records = [
("张三", True),
("李四", True),
("张三", False),
("王五", True),
("李四", True),
("张三", True),
]
# 统计每位球员协防补位成功次数
success_count = {}
for player, success in records:
if success:
success_count[player] = success_count.get(player, 0) + 1
print("协防补位成功次数:")
for player, count in success_count.items():
print(f"{player}: {count} 次")
输出:
协防补位成功次数:
张三: 2 次
李四: 2 次
王五: 1 次
使用 Pandas 分析(推荐)
import pandas as pd
data = {
"球员": ["张三", "李四", "张三", "王五", "李四", "张三"],
"是否成功": [True, True, False, True, True, True],
"位置": ["后卫", "中场", "后卫", "前锋", "中场", "后卫"],
}
df = pd.DataFrame(data)
# 1. 每位球员协防补位成功次数
success_by_player = df[df["是否成功"]].groupby("球员").size()
print("=== 每位球员协防补位成功次数 ===")
print(success_by_player)
# 2. 各位置协防补位成功次数
success_by_pos = df[df["是否成功"]].groupby("位置").size()
print("\n=== 各位置协防补位成功次数 ===")
print(success_by_pos)
# 3. 协防补位成功率
rate = df.groupby("球员")["是否成功"].mean() * 100
print("\n=== 各球员协防补位成功率(%) ===")
print(rate.round(1))
输出:
=== 每位球员协防补位成功次数 ===
球员
张三 2
李四 2
王五 1
=== 各位置协防补位成功次数 ===
位置
中场 2
前锋 1
后卫 2
=== 各球员协防补位成功率(%) ===
张三 66.7
李四 100.0
王五 100.0
读取文件统计(实战版)
假设有一个 defense.csv 文件:
球员,协防补位总次数,成功次数 张三,5,3 李四,4,4 王五,3,1
import pandas as pd
df = pd.read_csv("defense.csv")
# 计算成功率
df["成功率"] = (df["成功次数"] / df["协防补位总次数"] * 100).round(1)
# 按成功次数排序
df_sorted = df.sort_values("成功次数", ascending=False)
print(df_sorted)
# 全队协防补位成功总次数
total = df["成功次数"].sum()
print(f"\n全队协防补位成功总次数:{total} 次")
| 方法 | 适用场景 |
|---|---|
dict.get() 计数 |
数据量小、无依赖 |
collections.Counter |
快速计数 |
| Pandas groupby | 多维度分析(球员/位置/时间) |
| CSV读取 | 真实比赛数据 |
核心思路:
- 用布尔值或
1/0标记是否成功 - 用
groupby + size()或sum()聚合 - 成功率 = 成功次数 / 总次数 × 100%
如果你有具体的数据结构(比如比赛日志格式、字段名),可以发给我,我帮你写针对性的统计代码。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播