Availability Data
收藏数据集概述
数据集基本信息
- 数据集名称:Availability Data
- 数据来源:Transfermarkt (https://www.transfermarkt.com/)
- 更新频率:每周自动更新(每周二通过GitHub Actions刷新)
- 覆盖时间范围:2015/16赛季至当前赛季(2025/26赛季)
- 覆盖联赛:英超联赛(Premier League)、西甲(La Liga)、德甲(Bundesliga)、意甲(Serie A)、法甲(Ligue 1)、葡超(Liga Portugal)
数据内容与结构
核心数据记录
记录每个联赛、每个俱乐部、每个比赛日(matchday)中每位球员的出场状态。
球员状态定义
| 状态 | 含义 |
|---|---|
starting |
首发登场 |
sub_in |
替补登场 |
bench |
进入比赛日大名单但未出场 |
injured |
因伤病或疾病缺席 |
suspended |
因停赛缺席 |
national_team |
因国家队任务缺席 |
not_in_squad |
健康但未被选入比赛日大名单 |
not_at_club |
已转会或租借至其他俱乐部 |
not_included |
未注册或属于青年队 |
- 伤病条目包含一个
detail字段,记录具体的伤病类型和预计回归日期(例如:"Hamstring injury - Return expected on 05/01/2026")。
文件结构
raw/ # 原始数据:每个俱乐部每个赛季每个联赛一个JSON文件 GB1/ # 英超联赛 2015/ arsenal-fc.json ... 2025/ # 当前赛季(进行中) ES1/ # 西甲 L1/ # 德甲 IT1/ # 意甲 FR1/ # 法甲 PO1/ # 葡超
cleaned/ panel.csv # 清洗聚合数据:每行代表一个俱乐部一个赛季,包含伤病负担等指标
原始JSON文件结构示例
每个文件包含一个俱乐部在一个赛季中参加的所有赛事数据。 json { "club": "Arsenal FC", "tmSlug": "fc-arsenal", "tmId": 11, "season": "2025", "league": "GB1", "scrapedAt": "2026-03-28T...", "competitions": [ { "code": "GB1", "name": "Premier League 25/26", "players": [ { "name": "Bukayo Saka", "tmId": 433177, "position": "RW", "matches": [ { "round": "1", "status": "starting" }, { "round": "5", "status": "injured", "detail": "Hamstring injury - Return expected on 15/10/2025" } ] } ] } ] }
清洗后的面板CSV文件(panel.csv)
每行代表一个俱乐部一个赛季,包含预计算的字段。
| 列名 | 描述 |
|---|---|
league |
联赛代码(GB1, ES1, L1, IT1, FR1, PO1) |
league_name |
完整联赛名称 |
season |
赛季开始年份(例如:2025 代表 2025/26赛季) |
tm_id |
Transfermarkt俱乐部ID |
club |
俱乐部名称 |
injury_burden |
(受伤+停赛的比赛日数)/ 总在队比赛日数 |
injured_matchdays |
状态为"injured"的总球员-比赛日数 |
suspended_matchdays |
状态为"suspended"的总球员-比赛日数 |
national_team_matchdays |
因国家队任务缺席的总球员-比赛日数 |
starting_matchdays |
所有球员的总首发次数 |
squad_players |
至少进入过一次大名单的球员数量 |
n_competitions |
俱乐部参加的赛事数量 |
in_europe |
如果俱乐部参加了欧洲赛事则为1 |
数据覆盖范围
| 联赛 | 代码 | 覆盖赛季 | 每赛季俱乐部数量 |
|---|---|---|---|
| 英超联赛 | GB1 | 2015-2025 | 20 |
| 西甲 | ES1 | 2015-2025 | 20 |
| 德甲 | L1 | 2015-2025 | 18 |
| 意甲 | IT1 | 2015-2025 | 20 |
| 法甲 | FR1 | 2015-2025 | 18-20 |
| 葡超 | PO1 | 2015-2025 | 18 |
当前赛季(2025/26)已包含在内并每周更新。
使用方法示例(Python)
python import pandas as pd
panel = pd.read_csv("cleaned/panel.csv")
按联赛计算平均伤病负担
panel.groupby("league_name")["injury_burden"].mean().sort_values()
找出2024/25赛季伤病负担最高的俱乐部
panel[panel["season"] == "2024"].nlargest(10, "injury_burden")[["club", "league_name", "injury_burden"]]
方法论说明
- 数据来源于Transfermarkt的"Periods of Absence"(Ausfallzeiten)页面。
- 通用的"absent"状态根据伤病详情文本被重新分类为
suspended、national_team或other_absence。 injury_burden的计算排除了国家队征召(因其不属于俱乐部层面的健康问题)。not_at_club(已转会/租借的球员)不计入分子和分母。- Transfermarkt的数据是众包的,可能存在报告不一致的情况,尤其是在西甲和葡超。
相关资源
- Availability Is the Best Ability — 使用此数据集的分析文章。
- salimt/football-datasets — 补充的Transfermarkt数据(阵容价值、排名、转会)。
许可声明
数据来源于Transfermarkt,在此提供用于研究和分析目的。




