☰
2026 FIFA 世界杯比赛与球队数据探索性分析
2026/10/15 1:54:23 网站建设 项目流程

一、研究背景

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

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

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

二、研究意义

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

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

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

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

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

三、实证分析

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. 参赛球队结构

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. 时间节奏与高比分比赛

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. 球队攻防效率

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 等解释变量。

具体细节见原文

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询