2026 FIFA 世界杯比赛与球队数据探索性分析

一、研究背景

2026 FIFA 世界杯采用扩军后的 48 队规模,比赛数量、晋级路径和洲际代表性均显著提升。对于数据分析而言,扩军不仅意味着样本量增加,也带来更多小组间差异、跨洲对抗和淘汰赛组合,使比赛级与球队级的多维探索更有价值。

本研究使用两张结构化数据表:matches.csv 记录 92 场比赛的日期、阶段、小组、对阵、比分、胜者、点球决胜与备注;teams.csv 记录 48 支球队的小组、洲际足联、东道主身份、首次参赛身份和当前出局轮次。比赛数据截至 2026-07-05,因此属于赛事进行中的阶段性快照。

研究流程遵循标准 EDA 方法:首先核验数据质量与业务语义,其次进行比赛级和球队级特征工程,再依次分析单场进球、赛事阶段、小组排名、球队攻防、洲际表现与特殊球队群体,最后总结可复现结论和数据限制。

二、研究意义

**1.**比赛规律识别:通过总进球、比分频次、零封率、双方进球率和淘汰赛净胜球等指标,刻画赛事开放程度与比赛紧张度。

**2.**球队表现评价:将比赛记录转换为球队粒度,统一计算胜平负、进失球、净胜球、胜率、场均进球、场均失球和零封次数,避免只用单一指标判断强弱。

**3.**结构性比较:使用场均积分、场均净胜球和出线率比较不同洲际足联,降低球队数量差异带来的总量偏差。

**4.**博客复现价值:Notebook 中的数据读取、质量检查、函数封装和高清可视化均可独立运行,适合形成完整的技术博客案例。

**5.**建模风险识别:发现 team_1 为胜者优先排序,明确指出位置变量可能导致目标泄漏,为后续机器学习任务提供必要的数据治理依据。

代码、数据和报告https://mbd.pub/o/bread/YZaUlJpxaw==

三、实证分析

1. 基础数据特征与质量核验

|-------------|---------|---------|---------|-----------|
| 数据表 | 记录数 | 字段数 | 重复行 | 缺失单元格 |
| matches.csv | 92 | 15 | 0 | 106 |
| teams.csv | 48 | 6 | 0 | 12 |

两张表均不存在重复行,match_id 与 team 均可作为唯一标识。matches 表中的 group 缺失 20 条,恰好对应 20 场淘汰赛,属于结构性缺失;notes 只在特殊比赛中填写,缺失不需要插补。teams 表中的 eliminated_round 为空表示当前快照下尚未记录出局,也不能直接解释为最终晋级。

|-----------------------|--------|
| 关系 | 场次 |
| score_1 > score_2 | 69 |
| score_1 = score_2 | 23 |
| score_1 < score_2 | 0 |
| 非平局且 winner != team_1 | 0 |

2. 参赛球队结构

python 复制代码
conf_counts = teams['confederation'].value_counts().sort_values(ascending=True)
fig, ax = plt.subplots(figsize=(10, 5.8))
bars = ax.barh(conf_counts.index, conf_counts.values,
               color=sns.color_palette('crest', len(conf_counts)), edgecolor='white')
ax.bar_label(bars, padding=4, fontsize=10, fontweight='bold')
ax.set_title('2026 FIFA 世界杯参赛球队的洲际足联构成')
ax.set_xlabel('球队数量')
ax.set_ylabel('')
ax.xaxis.set_major_locator(MaxNLocator(integer=True))
sns.despine(left=True, bottom=True)
save_show('01_confederation_team_counts.png', fig)

UEFA 共有 16 支球队,是数量最多的洲际足联;CAF 有 10 支,AFC 有 9 支。数据中包含 3 支东道主和 4 支世界杯新军。参赛数量差异意味着洲际表现不能用总胜场直接比较,后续需要转为场均指标和比例指标。

3. 赛事阶段与进球分布

|-------------|--------|--------|----------|--------|----------|
| 赛事阶段 | 场次 | 进球 | 场均进球 | 平局 | 点球决胜 |
| Group Stage | 72 | 215 | 2.99 | 20 | 0 |
| Round of 32 | 16 | 42 | 2.62 | 0 | 3 |
| Round of 16 | 4 | 12 | 3.00 | 0 | 0 |

全部 92 场比赛共打入 269 球,场均 2.92 球,中位数为 3 球。小组赛场均 2.99 球,32 强赛下降至 2.62 球,说明进入淘汰赛后比赛整体更谨慎。当前仅有 4 场 16 强赛,其场均值仍容易受个别比赛影响。

总进球的四分位数分别为 2、3 和 4 球,说明一半比赛集中在 2---4 球区间。共有 32 场比赛至少打入 4 球,占全部比赛的 34.8%。

4. 比分结构与比赛形态

5. 时间节奏与高比分比赛

python 复制代码
daily = matches.groupby('date').agg(
    Matches=('match_id', 'count'),
    Goals=('total_goals', 'sum'),
    Avg_Goals=('total_goals', 'mean')
).reset_index()

fig, ax1 = plt.subplots(figsize=(13, 6))
ax1.bar(daily['date'], daily['Goals'], color=COLORS['blue'], alpha=0.78, label='每日总进球')
ax1.set_ylabel('每日总进球', color=COLORS['blue'])
ax1.tick_params(axis='y', labelcolor=COLORS['blue'])
ax1.xaxis.set_major_locator(mdates.DayLocator(interval=3))
ax1.xaxis.set_major_formatter(mdates.DateFormatter('%m-%d'))
plt.setp(ax1.get_xticklabels(), rotation=45, ha='right')

ax2 = ax1.twinx()
ax2.plot(daily['date'], daily['Avg_Goals'], color=COLORS['gold'], marker='o', linewidth=2.2,
         label='场均进球')
ax2.set_ylabel('当日场均进球', color=COLORS['gold'])
ax2.tick_params(axis='y', labelcolor=COLORS['gold'])
ax1.set_title('赛事期间每日进球产出与场均进球变化')
ax1.set_xlabel('比赛日期')
ax1.grid(axis='x', visible=False)

lines1, labels1 = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax1.legend(lines1 + lines2, labels1 + labels2, loc='upper right')
save_show('05_daily_goal_trend.png', fig)

每日总进球同时受比赛数量和比赛开放程度影响。2026-06-24 共进行 6 场比赛并产生 20 球,是当前总进球最高的比赛日;但若观察场均指标,部分仅有 4 场比赛的日期也可能更加开放。因此博客分析中应同时呈现总量与均值,避免把"赛程密集"误判为"进攻效率更高"。

6. 小组赛积分与竞争强度

本文用平局率(权重 45%)、积分极差的反向得分(35%)和净胜球极差的反向得分(20%)构建竞争强度指数。G 组以 73.0 分排名第一,主要原因是平局比例高且积分分布相对集中;I 组竞争强度最低,法国的全胜与伊拉克的大比分失利拉大了组内差距。该指数属于解释性指标,其权重可根据博客主题调整。

7. 球队攻防效率

python 复制代码
team_scatter = team_stats[team_stats['MP'] >= 3].copy()
fig, ax = plt.subplots(figsize=(11, 7))
sns.scatterplot(data=team_scatter, x='GF_per_Match', y='GA_per_Match',
                size='MP', hue='confederation', sizes=(70, 220), alpha=0.82, ax=ax,
                palette='tab10')
for _, row in team_scatter.nlargest(8, 'GD').iterrows():
    ax.annotate(row['team'], (row['GF_per_Match'], row['GA_per_Match']),
                xytext=(5, 5), textcoords='offset points', fontsize=8)
ax.axvline(team_scatter['GF_per_Match'].median(), color=COLORS['gray'], linestyle='--', linewidth=1)
ax.axhline(team_scatter['GA_per_Match'].median(), color=COLORS['gray'], linestyle='--', linewidth=1)
ax.set_title('球队攻防效率定位图')
ax.set_xlabel('场均进球(越高越好)')
ax.set_ylabel('场均失球(越低越好)')
ax.legend(bbox_to_anchor=(1.02, 1), loc='upper left')
save_show('11_team_attack_defense_scatter.png', fig)

\

攻防散点图以场均进球为横轴、场均失球为纵轴。右下象限代表"高进球、低失球"的理想区域;左上象限则代表进攻不足且防守承压。气泡大小对应出场次数,能够提醒读者不同球队的样本量并不完全相同。

8. 洲际足联表现

|----------|---------|----------|----------|-----------|---------|
| 洲际足联 | 球队数 | 场均积分 | 场均进球 | 场均净胜球 | 出线率 |
| CONMEBOL | 6 | 1.83 | 1.44 | 0.72 | 83.3% |
| UEFA | 16 | 1.75 | 2.02 | 0.69 | 81.2% |
| CAF | 10 | 1.33 | 1.33 | -0.10 | 80.0% |
| CONCACAF | 6 | 1.11 | 1.39 | -0.17 | 50.0% |
| AFC | 9 | 0.67 | 0.85 | -1.26 | 22.2% |
| OFC | 1 | 0.33 | 1.33 | -2.00 | 0.0% |

出线率与场均积分的结论基本一致,但两者并非完全等价:积分反映小组赛过程,出线率反映结果阈值。由于 OFC 仅有 1 支球队,0% 出线率不能代表稳定的洲际水平;小样本比例必须谨慎解释。

9. 东道主与世界杯新军

10. 淘汰赛紧张度与指标相关性

当前共有 20 场淘汰赛,其中 11 场在常规比分上只差 1 球,另有 3 场进入点球决胜。32 强赛场均进球较小组赛下降,且一球差比赛占比较高,说明淘汰赛的容错空间更小。

四、核心结论

**1.**赛事进球产出较高:92 场比赛共 269 球,场均 2.92 球;小组赛场均 2.99 球,32 强赛降至 2.62 球。

**2.**比分以中低比分为主:最常见比分是 1-0,至少一方零封的比赛占 45.7%;但仍有 34.8% 的比赛达到 4 球或以上。

**3.**法国是当前综合表现最突出球队之一,5 战全胜并打入 14 球;西班牙 4 场比赛全部零封,防守效率领先。

**4.**小组均衡度差异显著:G 组在本文竞争强度指数中排名最高,I 组因头尾差距较大而最低。

**5.**洲际表现方面,CONMEBOL 小组赛场均积分最高,UEFA 在场均积分、进球和出线率上也保持较强整体表现。

。。。。。。

五、局限性与扩展方向

**1.**阶段性数据:只有 92 场比赛,尚未覆盖完整 104 场赛程,淘汰赛样本尤其有限。

**2.**变量维度有限:缺少控球率、射门、射正、角球、犯规、球员事件、xG、FIFA 排名和 Elo 等解释变量。

。。。。。。

具体细节见原文

创造不易,谢谢各位多多点赞收藏!

相关推荐
qetfw1 小时前
yt-dlp:下载公开视频、字幕、封面和音频的实用命令
python·音视频·开源项目·效率工具
QH_ShareHub1 小时前
GPU 完整运行过程:驱动、CUDA Toolkit、Conda、Python PyTorch 与 R torch
pytorch·python·conda
丘丘用户思思澪1 小时前
LangChain Agent 完全指南
人工智能·langchain
开源量化GO1 小时前
最新AI量化学习路径,从交易想法走到条件和动作
人工智能·python
科技发布1 小时前
2026户外广告数字化升级:传播易以AI技术重构全域户外品效营销体系
人工智能·重构
SNKXD_11 小时前
避开选型认知误区:2026年实测8款智能AI数字人平台总结筛选标准
大数据·人工智能·机器学习
未来和明天1 小时前
领嵌iLeadE-588边缘计算盒子16路AI视频分析、4路AHD、4路千兆网、4G/5G通讯、标准API接口
人工智能·5g·边缘计算
香蕉鼠片2 小时前
图像处理经典脚本
图像处理·python·opencv
微硬创新2 小时前
耐达讯自动化PROFINET转DeviceNet网关:医药包装生产线的合规与效率双保障
服务器·人工智能·物联网·网络协议·自动化·信息与通信