Loading...
Loading...
Transform, filter, reshape, join, and manipulate football data. Use when the user needs to clean data, merge datasets, convert between formats, handle missing values, work with large datasets, or do any data manipulation task on football data.
npx skill4agent add withqwerty/nutmeg nutmeg-wrangledocs/accuracy-guardrail.mdsearch_docs.nutmeg.user.md/nutmegsearch_docs(query="coordinate system", provider="[provider]")x * 1.2y * 0.8xy = 100 - y.transform()| Join | Key | Notes |
|---|---|---|
| Events + lineups | player_id + match_id | Get player names/positions for each event |
| Events + xG | match_id + event sequence | Match xG to specific shots |
| Multiple providers | match date + team names | Fuzzy matching often needed |
| Season data + Elo | date | Join Elo rating at time of match |
TEAM_MAP = {
'Man City': 'Manchester City',
'Man United': 'Manchester United',
'Spurs': 'Tottenham Hotspur',
'Wolves': 'Wolverhampton Wanderers',
# ...
}readlineJSONStream| Check | What to look for |
|---|---|
| Event counts | ~1500-2000 events per PL match. Much less = data issue |
| Coordinate range | Should be within provider's expected range |
| Missing player IDs | Some events lack player attribution (ball out, etc.) |
| Duplicate events | Same event_id appearing twice |
| Time gaps | Large gaps in event timestamps within a match |
| Team attribution | Verify home/away assignment is consistent |
| From | To | Tool/method |
|---|---|---|
| JSON events | DataFrame | pandas/polars |
| CSV | Parquet | |
| Provider format | kloppy model | |
| kloppy model | DataFrame | |
| Any | SQLite | Load into SQLite for ad-hoc queries |