26 open-source packages · R · Python · Node.js · 8 leagues in the warehouse · 120M+ rows of play-by-play · EPA · win probability · ratings models · free and open since 2021

CFB team EPA with polars

CFB team EPA with polars

One season of college football play-by-play as a polars DataFrame, ranked by EPA per play.

sportsdataverse-py loaders return polars DataFrames by default — a full season of college football play-by-play loads in seconds from the sportsdataverse-data parquet releases.

cfb_epa.py

# pip install sportsdataverse
import polars as pl
import sportsdataverse as sdv
 
pbp = sdv.cfb.load_cfb_pbp(seasons=[2024])  # polars DataFrame
 
(
    pbp
    .filter(pl.col("EPA").is_not_null())
    .group_by("pos_team")
    .agg(
        plays=pl.len(),
        epa_play=pl.col("EPA").mean(),
    )
    .sort("epa_play", descending=True)
    .head(10)
)

Prefer pandas? Every loader takes return_as_pandas=True. Pass several seasons (seasons=range(2014, 2025)) to build a decade-long frame.

Full docs: py.sportsdataverse.org