Python案例:统计脚后跟传球成功次数
下面我用一个完整的案例来演示如何统计足球比赛中脚后跟传球(backheel pass)的成功次数。

场景说明
假设我们要分析一场比赛中的传球数据,需要:
- 找出所有脚后跟传球
- 判断传球是否成功(队友接到球)
- 统计成功次数
基础版本
# 传球数据:[传球者, 接球者, 传球方式, 是否成功, 比赛时间]
passes = [
["梅西", "苏亚雷斯", "backheel", True, "12'"],
["梅西", "布斯克茨", "short", True, "15'"],
["阿尔巴", "梅西", "backheel", True, "23'"],
["内马尔", "梅西", "backheel", False, "35'"], # 被对手拦截
["苏亚雷斯", "梅西", "backheel", True, "48'"],
["布斯克茨", "皮克", "long", True, "60'"],
["梅西", "阿尔巴", "backheel", True, "72'"],
["拉基蒂奇", "梅西", "backheel", False, "80'"],
]
# 统计脚后跟传球成功次数
backheel_success = 0
backheel_total = 0
for p in passes:
if p[2] == "backheel":
backheel_total += 1
if p[3]: # True 表示成功
backheel_success += 1
print(f"脚后跟传球总次数: {backheel_total}")
print(f"成功次数: {backheel_success}")
print(f"成功率: {backheel_success / backheel_total * 100:.1f}%")
输出:
脚后跟传球总次数: 6
成功次数: 4
成功率: 66.7%
进阶版本(使用 pandas)
如果数据量大,推荐使用 pandas:
import pandas as pd
df = pd.DataFrame(passes, columns=["passer", "receiver", "type", "success", "time"])
# 筛选脚后跟传球
backheels = df[df["type"] == "backheel"]
# 统计
total = len(backheels)
success = backheels["success"].sum()
rate = success / total * 100
print(f"脚后跟传球总次数: {total}")
print(f"成功次数: {success}")
print(f"成功率: {rate:.1f}%")
# 查看是谁传的
print("\n各球员脚后跟传球统计:")
print(backheels.groupby("passer")["success"].agg(["count", "sum"]))
输出:
脚后跟传球总次数: 6
成功次数: 4
成功率: 66.7%
各球员脚后跟传球统计:
count sum
passer
内马尔 1 0
拉基蒂奇 1 0
梅西 3 2
苏亚雷斯 1 1
阿尔巴 1 1
函数封装版(可复用)
def count_backheel_success(passes):
"""
统计脚后跟传球成功次数
:param passes: 传球列表 [[传球者, 接球者, 方式, 是否成功], ...]
:return: dict 统计结果
"""
backheels = [p for p in passes if p[2] == "backheel"]
total = len(backheels)
success = sum(1 for p in backheels if p[3])
return {
"总次数": total,
"成功次数": success,
"成功率": f"{success/total*100:.1f}%" if total else "0%"
}
# 调用
result = count_backheel_success(passes)
print(result) # {'总次数': 6, '成功次数': 4, '成功率': '66.7%'}
关键点总结
| 步骤 | 说明 |
|---|---|
| 遍历数据 | 用 for 循环或 pandas 筛选 |
| 判断条件 | 传球方式 == "backheel"(或用 in ["backheel", "heel"] 兼容) |
| 累加计数 | 满足条件的传球数 +1 |
| 判断成功 | 布尔字段为 True 时成功数 +1 |
如果你有真实的比赛数据(Opta、StatsBomb 格式),可以告诉我数据字段,我帮你写对应的解析代码 👍
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播