Python Foundations for Sports Data
Zero to competent: install Python, learn pandas on real standings, and finish by building a league table from raw results.
Every tutorial on this site belongs to exactly one course, in a deliberate order - foundations first, then the craft, then the sport you care about. Each course carries an annotated syllabus, a written capstone challenge, a five-question self-check, and a one-ZIP bundle of all its code and data.
Zero to competent: install Python, learn pandas on real standings, and finish by building a league table from raw results.
Ten chart types, each built on real sports data, ending with the styling pass that makes a figure publishable.
The measurement toolkit: distributions, z-scores, percentiles, outliers, time series — closing with what actually predicts winning.
Monte Carlo seasons, bootstrap intervals, permutation tests, chi-square and Bayesian updating — how to tell signal from luck.
Nine models and methods — gradient descent to decision trees — every one implemented in pure numpy on real NBA data.
Read API docs like a developer, then pull your first real data from MLB, the NBA, StatsBomb, nflverse and the NHL.
Exit velocity, pitch maps, spray charts, luck-hunting and Pythagorean wins — the richest free data in sports, put to work.
Ratings tables, shot charts, zone efficiency, the three-point revolution — and an Elo system you build yourself.
Pass maps, shot maps, heatmaps and pass networks from free professional event data — plus a real World Cup dataset.
EPA built by hand, quarterback efficiency, play-calling tendencies, receiver value and the fourth-down decision.
Three NHL builds — shots, leaders, form — then the capstone: measuring home advantage across five leagues at once.
Not sure where to begin? Start Here picks a first course for you. Wondering what data all of this runs on? It's documented, with sources and downloads, on the datasets page.