本文目录导读:

您提到的“实用脚本”如果要统计直塞球成功率,通常需要结合具体的工具(如Python、Excel、或足球数据分析平台)以及数据源(如Wyscout、Opta、StatsBomb等)。
为了给您最准确的答案,这里我先提供一个通用的统计逻辑和一个可直接运行的Python脚本模板,您可以根据手头的数据格式进行调整。
核心定义
在足球数据中,直塞球通常被定义为“穿透防线、为队友创造直接射门机会的传球”,成功率 = (成功直塞球次数 ÷ 总直塞球尝试次数)× 100%。
通用统计逻辑(伪代码)
无论用什么工具,逻辑都是一样的:
- 筛选出所有“直塞球”事件(通常数据源中有
pass_type = “through_ball”)。 - 判断这些传球是否成功(通常以
outcome字段或队友是否接球为准)。 - 计算成功率。
Python 实用脚本(适合 CSV 数据)
假设您的数据是 CSV 格式,包含字段:player、pass_type、outcome。
import pandas as pd
# 加载数据
df = pd.read_csv('passes_data.csv')
# 筛选出所有直塞球尝试
through_balls = df[df['pass_type'] == 'throughBall']
# 统计总尝试次数和成功次数
total_attempts = len(through_balls)
successful_attempts = len(through_balls[through_balls['outcome'] == 'Successful'])
# 计算成功率
if total_attempts > 0:
success_rate = (successful_attempts / total_attempts) * 100
else:
success_rate = 0
# 输出结果
print(f"总直塞球次数: {total_attempts}")
print(f"成功直塞球次数: {successful_attempts}")
print(f"直塞球成功率: {success_rate:.2f}%")
# 如果需要按球员分组统计
grouped = through_balls.groupby('player').apply(
lambda x: pd.Series({
'attempts': len(x),
'successful': len(x[x['outcome'] == 'Successful']),
'rate': (len(x[x['outcome'] == 'Successful']) / len(x)) * 100 if len(x) > 0 else 0
})
).sort_values('attempts', ascending=False)
print("\n--- 按球员统计 ---")
print(grouped)
如果是处理比赛录像(视频帧统计)
如果您是人工看视频统计,建议使用 Excel 模板:
- 列出球员名字。
- 每传一球,在“直塞尝试”列加1,如果成功,在“成功”列加1。
- 最后用公式
=成功/尝试*100计算。
现实数据参考(行业标准)
根据 Opta 等数据公司的统计,在五大联赛中:
- 平均直塞球成功率通常在 60% - 70% 之间。
- 顶级中场组织核心(如德布劳内)成功率通常在 70% - 80% 左右。
- 后场长距离直塞成功率相对偏低(因为难度大)。
如果您有特定数据源(如Wyscout API):
您需要告诉我数据的字段名(是 isThrough 还是 eventType),我可以为您修改脚本。
请问您手头的数据是什么格式(Excel、JSON还是API)?以及“直塞球”在您的数据里有没有特定的标签或字段? 这样可以给您更精准的代码。