本文目录导读:

在足球数据分析中,“定位球得分占比”是一个核心的战术统计指标,它通常定义为:定位球进球数 ÷ 总进球数 × 100%。
这里所谓的“定位球”通常包含:角球、任意球(直接和间接)、点球、界外球(手抛球进攻),具体覆盖范围取决于你的战术定义(是否包含点球会影响数据——点球通常是个人能力,而角球和任意球代表战术配合)。
由于我无法直接访问你本地的比赛数据文件,我为你提供三个维度的实用脚本(Python、Excel公式、SQL查询),你可以根据数据格式直接套用。
Python 脚本(适用于 CSV/Excel 数据)
这是最灵活的方案,假设你有一份比赛事件日志(每行是一个进球事件),包含三列:比赛ID, 进球时间, 进球方式。
import pandas as pd
# --- 配置区 ---
# 1. 读取你的数据文件(支持 csv 或 excel)
# file_path = 'your_data.csv'
file_path = 'matches_data.xlsx' # 或者 .csv
# 2. 定义“定位球”的具体类别(根据你数据里的中文/英文标签调整)
set_piece_types = ['任意球', '角球', '点球', '界外球', 'Free Kick', 'Corner', 'Penalty', 'Throw-in']
# --- 核心逻辑 ---
# 读取数据
try:
df = pd.read_excel(file_path)
except:
df = pd.read_csv(file_path, encoding='utf-8')
# 建议:确保“进球方式”列名正确,如果是英文请修改这里
goal_type_col = '进球方式' # 改成你的列名,'Goal Type'
# 去掉空值,确保数据干净
df = df.dropna(subset=[goal_type_col])
# 总进球数
total_goals = len(df)
# 定位球进球数(将进球方式列转为字符串,并检查是否在集合中)
df['is_set_piece'] = df[goal_type_col].astype(str).str.strip().isin(set_piece_types)
set_piece_goals = df['is_set_piece'].sum()
# 计算占比
percentage = (set_piece_goals / total_goals * 100) if total_goals > 0 else 0
# --- 输出报告 ---
print(f"📊 定位球得分占比统计报告")
print(f"{'='*40}")
print(f"总进球数: {total_goals}")
print(f"定位球进球数: {set_piece_goals}")
print(f"定位球得分占比: **{percentage:.2f}%**")
print()
print("细分统计(可选):")
# 细分每种定位球的数量
print(df[df['is_set_piece']][goal_type_col].value_counts())
Excel 公式(适用于手动录入的表格)
假设你的表格结构如下:
- A列:比赛编号
- B列:进球队员
- C列:进球方式(文本,运动战”、“角球”、“点球”)
步骤:
-
在 D 列(辅助列)输入以下公式,判断是否为定位球:
=IF(OR(ISNUMBER(SEARCH("角球",C2)), ISNUMBER(SEARCH("任意球",C2)), ISNUMBER(SEARCH("点球",C2)), ISNUMBER(SEARCH("界外球",C2))), 1, 0)注:SEARCH 函数会忽略大小写,且支持通配符,你可以添加更多条件,如
ISNUMBER(SEARCH("手抛球",C2))。 -
在任意空白单元格计算占比:
=SUM(D:D) / COUNTA(C:C) * 100 & "%"
或者使用
TEXT函数保留两位小数:=TEXT(SUM(D:D)/COUNTA(C:C),"0.00%")
SQL 查询(适用于结构化数据库)
如果你的数据存储在数据库中,表格名为 goals,字段包含 goal_id, match_id, goal_type。
-- 统计总进球数和定位球占比
SELECT
COUNT(*) AS total_goals,
SUM(CASE
WHEN goal_type IN ('任意球', '角球', '点球', '界外球')
THEN 1 ELSE 0
END) AS set_piece_goals,
ROUND(
(SUM(CASE
WHEN goal_type IN ('任意球', '角球', '点球', '界外球')
THEN 1 ELSE 0
END) * 100.0) / COUNT(*), 2
) AS set_piece_percentage
FROM goals;
⚠️ 特别提醒:点球”的取舍
在足球战术分析中,统计“定位球战术”时,通常会将“点球”单独剥离,因为点球既体现了运动战施压(造点),也存在哨声判定因素。
- 战术定位球占比(不含点球):主要用于评判球队的进攻套路配合(角球、任意球)。
- 纯定位球占比(含点球):如果用这个数据去对比欧洲五大联赛,“定位球进球占比”在 35% 左右是正常水平,如果高于 45%,说明这支球队非常依赖定位球,运动战创造力不足。
如果你能告诉我你数据中“进球方式”列的具体名称(例如具体的英文单词或中文标签),我可以帮你把脚本中的关键词改到最精确。