
Pull Your First NFL Data with nfl_data_py
Load a full season of NFL play-by-play, the nflverse way - including the real pandas-version gotcha that breaks nfl_data_py and the one-line fix around it.
nflverse opens up every NFL play. Compute EPA, compare quarterbacks, and learn the modern football-analytics toolkit.
No tutorials match that filter.

Load a full season of NFL play-by-play, the nflverse way - including the real pandas-version gotcha that breaks nfl_data_py and the one-line fix around it.

Aggregate play-by-play to the quarterback level and build a labeled scatter of EPA per dropback against completion percentage to compare passers fairly.

Pivot a season of play-by-play to map a team's run-pass tendencies across every down and distance - exactly the scouting grid coordinators build before a game.

Aggregate play-by-play to the receiver level to compare pass-catchers on targets, catch rate, yards after the catch, and EPA - separating volume from true efficiency.

Expected Points Added is less mysterious than it sounds. Work with nflverse EPA directly, summarize it by down and play type, and learn what it really measures.

Filter play-by-play to fourth downs, classify each decision (go, punt, kick), and rank teams by how often they go for it - the clearest signal of analytics-era coaching.