统计冲刺跑次数谁更多 - Python案例
问题场景
假设有两个足球运动员,教练记录了他们每场比赛的冲刺跑次数(冲刺跑定义为速度超过 25 km/h 的跑动),现在需要统计:谁冲刺跑次数更多?

下面用几个不同层级的案例来演示。
基础版 - 两个人总次数对比
# 每个运动员每场比赛的冲刺次数
player_a = [12, 15, 9, 18, 14] # A 每场冲刺次数
player_b = [10, 20, 13, 11, 16] # B 每场冲刺次数
total_a = sum(player_a)
total_b = sum(player_b)
print(f"A 总冲刺次数: {total_a}")
print(f"B 总冲刺次数: {total_b}")
if total_a > total_b:
print(f"🏆 A 冲刺更多,多 {total_a - total_b} 次")
elif total_b > total_a:
print(f"🏆 B 冲刺更多,多 {total_b - total_a} 次")
else:
print("🤝 两人冲刺次数相同")
输出:
A 总冲刺次数: 68
B 总冲刺次数: 70
🏆 B 冲刺更多,多 2 次
进阶版 - 多维度统计(场均、最高、胜场)
import statistics
players = {
"球员A": [12, 15, 9, 18, 14],
"球员B": [10, 20, 13, 11, 16],
}
def analyze(name, data):
return {
"总次数": sum(data),
"场次": len(data),
"场均": round(statistics.mean(data), 2),
"最高": max(data),
"最低": min(data),
}
results = {name: analyze(name, data) for name, data in players.items()}
# 打印表格
print(f"{'球员':<8}{'总次数':<8}{'场均':<8}{'最高':<8}{'最低':<8}")
for name, r in results.items():
print(f"{name:<8}{r['总次数']:<8}{r['场均']:<8}{r['最高']:<8}{r['最低']:<8}")
# 找出谁更多(多个维度)
winner = max(results, key=lambda x: results[x]["总次数"])
print(f"\n🏆 冲刺跑总次数最多的是: {winner} ({results[winner]['总次数']} 次)")
输出:
球员 总次数 场均 最高 最低
球员A 68 13.6 18 9
球员B 70 14.0 20 10
🏆 冲刺跑总次数最多的是: 球员B (70 次)
完整版 - 读取 CSV 数据对比(实战常用)
sprints.csv 文件格式:
date,player,sprints 2024-03-01,A,12 2024-03-01,B,10 2024-03-08,A,15 2024-03-08,B,20 2024-03-15,A,9 2024-03-15,B,13 2024-03-22,A,18 2024-03-22,B,11 2024-03-29,A,14 2024-03-29,B,16
import csv
from collections import defaultdict
totals = defaultdict(int)
with open("sprints.csv", encoding="utf-8") as f:
reader = csv.DictReader(f)
for row in reader:
totals[row["player"]] += int(row["sprints"])
# 排序输出
ranked = sorted(totals.items(), key=lambda x: x[1], reverse=True)
print("冲刺跑次数排行榜:")
for i, (player, count) in enumerate(ranked, 1):
print(f" {i}. {player}: {count} 次")
if len(ranked) >= 2:
top, second = ranked[0], ranked[1]
print(f"\n🏆 {top[0]} 冲刺次数更多,领先 {top[1] - second[1]} 次")
用 Pandas 一行搞定(数据分析推荐)
import pandas as pd
df = pd.read_csv("sprints.csv")
# 按球员汇总
total = df.groupby("player")["sprints"].sum().sort_values(ascending=False)
# 谁更多?
print(total)
print(f"\n冲刺次数最多的球员是: {total.idxmax()} ({total.max()} 次)")
# 每场对比谁赢
pivot = df.pivot_table(index="date", columns="player", values="sprints")
pivot["胜者"] = pivot.idxmax(axis=1)
print("\n每场冲刺更多者:")
print(pivot)
| 方法 | 适用场景 |
|---|---|
列表 + sum() |
简单几人几场的对比 |
| 字典 + 函数 | 需要多指标(场均、最高等) |
csv 模块 |
真实文件数据,无需第三方库 |
pandas |
数据量大、需要分组统计和透视表 |
核心思路一致:
- 收集每个球员的冲刺次数(列表/字典/DataFrame)
- 求和/统计
- 用
max()或排序找出「谁更多」 - 输出差值或排行榜
如果需要处理实时 GPS 数据判断冲刺(即根据速度序列自动识别冲刺跑片段),我也可以补充案例,例如检测连续超过某个速度阈值的片段,要吗?
版权声明: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直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播