本文目录导读:

如果您想统计低平球传中次数,通常的思路是这样的:
一般判定逻辑
低平球传中 = 传中 + 传球高度为"低平"
# 伪代码示例
low_crosses = df[
(df['pass_type'] == 'cross') & # 是传中
(df['pass_height'] == 'Low Pass') | # 低平球
(df['cross_ground'] == True)
]
count = len(low_crosses)
如果是 StatsBomb 数据
StatsBomb 的传球事件里有 pass.height 字段:
"High Pass"— 高球"Low Pass"— 低平球"Ground Pass"— 地滚球
传中则看 pass.cross == True
import pandas as pd
from statsbombpy import sb
events = sb.events(match_id=XXXX)
# 展开传球相关字段
passes = events[events['type'] == 'Pass'].copy()
passes['is_cross'] = passes['pass_cross'].fillna(False)
passes['height'] = passes['pass_height']
# 低平球传中:传球=传中 且 高度=Low Pass
low_crosses = passes[
(passes['is_cross'] == True) &
(passes['height'] == 'Low Pass')
]
print("低平球传中次数:", len(low_crosses))
# 按球员统计
by_player = low_crosses.groupby('player').size().sort_values(ascending=False)
print(by_player)
如果是 mplsoccer + Opta 数据
Opta 用 pass_type 里的 qualifier 区分:
type_id == 1表示传中相关- qualifier
210= 低平球