本文目录导读:

你这个问题看起来像是一个具体的分析题,但缺少了关键信息:你指的是哪场比赛、哪两支队伍、以及用Python分析的是什么数据(传球网络、跑动热图、控球序列、xG、压迫数据等)?
我先按常见理解来回答:如果要用Python案例判断“哪队战术执行更到位”,通常不是看单一指标,而是看多维度数据是否与赛前战术意图一致。 下面给出一个可复用的分析框架和判断逻辑。
先明确“战术执行到位”的Python分析维度
| 维度 | Python常用方法 | 战术含义 |
|---|---|---|
| 阵型与站位 | 球员平均位置、热图、k-means聚类 | 是否保持战术阵型 |
| 传球网络 | networkx、传球中心性 | 是否按预设出球线路组织 |
| 控球区域 | 控球热图、区域控球比 | 是否执行“打边路/中路渗透” |
| 压迫效率 | PPDA、高位夺回次数 | 是否执行高位逼抢 |
| 进攻推进 | progressive passes/carries | 是否有效向前推进 |
| 防守紧凑度 | 防线间距、横向紧凑度 | 是否保持防守阵型 |
| 转换效率 | 由守转攻次数、反击射门 | 是否执行快速转换 |
| 定位球 | 定位球xG、战术角球模式 | 是否执行定位球战术 |
Python案例式判断流程
import pandas as pd
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
# 假设 df 包含两队事件数据:team, player, type, x, y, end_x, end_y, minute
# 1. 计算每队平均站位与阵型紧凑度
def team_shape(df, team):
d = df[(df['team']==team) & (df['type']=='position')]
avg_x = d.groupby('player')['x'].mean()
avg_y = d.groupby('player')['y'].mean()
compactness = np.sqrt(avg_x.var() + avg_y.var()) # 越小越紧凑
return avg_x, avg_y, compactness
# 2. 传球网络中心性:看是否围绕战术核心组织
def pass_network(df, team):
d = df[(df['team']==team) & (df['type']=='pass')]
G = nx.DiGraph()
for _, r in d.iterrows():
G.add_edge(r['player'], r['recipient'])
centrality = nx.degree_centrality(G)
return G, centrality
# 3. PPDA:高位压迫强度(越低压迫越强)
def ppda(df, team):
opp = df[df['team']!=team]
def_actions = opp[opp['type'].isin(['pass','carry'])].shape[0]
pressing = df[(df['team']==team) & (df['type'].isin(['tackle','interception','pressure']))].shape[0]
return def_actions / max(pressing, 1)
# 4. 推进效率:progressive passes比例
def progression(df, team):
d = df[(df['team']==team) & (df['type']=='pass')]
prog = d[(d['end_x'] - d['x']) > 10].shape[0]
return prog / max(len(d), 1)
# 5. 控球区域偏好:左/中/右三区占比
def zone_control(df, team):
d = df[(df['team']==team) & (df['type'].isin(['pass','carry']))]
d['zone'] = pd.cut(d['y'], bins=[0,26.7,53.3,80], labels=['左','中','右'])
return d['zone'].value_counts(normalize=True)
如何下结论:“哪队战术执行更到位”
不能只看谁控球多或传球多,而要看数据是否匹配该队赛前战术意图:
情况A:A队主打高位压迫+快速转换
- 判断标准:PPDA低、高位夺回多、由守转攻射门多、传球网络向前占比高
- 如果A队这些指标都高 → A队执行更到位
情况B:B队主打低位防守+边路反击
- 判断标准:防守紧凑度高、中路让出但边路拦截多、反击推进效率高、定位球xG高
- 如果B队这些指标符合 → B队执行更到位
情况C:两队都按自己套路打
- 看执行偏差度:实际数据 vs 赛季平均/赛前预设的偏离程度
- 偏离越小、关键指标越突出 → 执行更到位
典型Python案例结论模板
用
mplsoccer画两队传球网络和热图后发现:A队传球网络高度集中在右路,与赛前“右路强侧”战术一致;PPDA为8.2,高位夺回12次,转换射门5次,说明高位压迫执行到位,B队虽然控球率58%,但progressive pass占比仅18%,且传球网络中心在后腰,未执行“快速通过中场”的意图,因此A队战术执行更到位。
你需要补充的信息
要给出具体“哪队”的答案,请告诉我:
- 哪场比赛/哪两队?
- 你手头有什么数据(事件数据、追踪数据、StatsBomb/FBref/WhoScored)?
- 两队赛前战术大概是什么?
- 你希望用哪个Python库(mplsoccer、networkx、socceraction等)?
有了这些,我可以直接帮你写分析代码并给出“哪队战术执行更到位”的结论。