统计转身过人次数 - Python案例
下面用一个模拟篮球比赛数据的案例,演示如何统计每位球员的"转身过人"次数并找出谁最多。

场景说明
假设我们有一份比赛事件日志,记录每次进攻动作,每条数据包含:球员、动作类型。
完整代码
import pandas as pd
from collections import Counter
# 1. 模拟比赛事件数据(实际可从 CSV 或 API 读取)
data = [
{"player": "张三", "action": "转身过人"},
{"player": "李四", "action": "三分投篮"},
{"player": "张三", "action": "转身过人"},
{"player": "王五", "action": "转身过人"},
{"player": "李四", "action": "转身过人"},
{"player": "张三", "action": "上篮"},
{"player": "王五", "action": "转身过人"},
{"player": "李四", "action": "转身过人"},
{"player": "赵六", "action": "转身过人"},
{"player": "张三", "action": "转身过人"},
{"player": "王五", "action": "传球"},
{"player": "赵六", "action": "转身过人"},
]
df = pd.DataFrame(data)
# 2. 筛选出"转身过人"的记录
spin_df = df[df["action"] == "转身过人"]
# 3. 统计每位球员的转身过人次数
counts = spin_df["player"].value_counts()
print("=== 转身过人次数排行 ===")
print(counts)
# 4. 找出次数最多的球员
max_count = counts.max()
top_players = counts[counts == max_count].index.tolist()
print(f"\n转身过人次数最多:{max_count} 次")
print(f"球员:{', '.join(top_players)}")
运行结果
=== 转身过人次数排行 ===
张三 3
李四 2
王五 2
赵六 2
Name: player, dtype: int64
转身过人次数最多:3 次
球员:张三
代码解析
| 步骤 | 作用 |
|---|---|
df[df["action"]=="转身过人"] |
过滤出目标动作 |
value_counts() |
按球员聚合计数,默认降序 |
counts.max() + 布尔筛选 |
处理并列第一名的情况 |
扩展:可视化 & 从文件读取
import matplotlib.pyplot as plt
# 从CSV读取(示例)
# df = pd.read_csv("match_events.csv")
# 画柱状图
counts.plot(kind="bar", color="orange", title="转身过人次数统计")
plt.xlabel("球员")
plt.ylabel("次数")
plt.tight_layout()
plt.savefig("spin_move_stats.png")
plt.show()
进阶思路
- 按比赛/节次统计:加
period字段,用groupby(["period","player"])分组。 - 成功率统计:动作字段加
success(True/False),统计每人「转身过人成功次数」。 - 效率指标:
转身过人次数 / 总持球次数,避免只看绝对值。 - 多人并列:如上用
counts[counts==max],避免只取idxmax()漏掉并列。
如果你的真实数据字段不同(如 event_type、player_name),告诉我列名,我可以改成对应版本 👍
版权声明: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直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播