nfl_data_py is a Python library for interacting with NFL data sourced from nflfastR, nfldata, dynastyprocess, and Draft Scout.
Includes import functions for play-by-play data, weekly data, seasonal data, rosters, win totals, scoring lines, officials, draft picks, draft pick values, schedules, team descriptive info, combine results and id mappings across various sites.
Use the package manager pip to install nfl_data_py.
pip install nfl_data_py
import nfl_data_py as nfl
Working with play-by-play data
nfl.import_pbp_data(years, columns, downcast=True)
Returns play-by-play data for the years and columns specified
years : required, list of years to pull data for (earliest available is 1999)
columns : optional, list of columns to pull data for
downcast : converts float64 columns to float32, reducing memory usage by ~30%. Will slow down initial load speed ~50%
nfl.see_pbp_cols()
returns list of columns available in play-by-play dataset
Working with weekly data
nfl.import_weekly_data(years, columns, downcast)
Returns weekly data for the years and columns specified
years : required, list of years to pull data for (earliest available is 1999)
columns : optional, list of columns to pull data for
downcast : converts float64 columns to float32, reducing memory usage by ~30%. Will slow down initial load speed ~50%
nfl.see_weekly_cols()
returns list of columns available in weekly dataset
Working with seasonal data
nfl.import_seasonal_data(years)
Returns seasonal data, including various calculated market share stats
years : required, list of years to pull data for (earliest available is 1999)
Additional data imports
nfl.import_rosters(years, columns)
Returns roster information for years and columns specified
years : required, list of years to pull data for (earliest available is 1999)
columns : optional, list of columns to pull data for
nfl.import_win_totals(years)
Returns win total lines for years specified
years : optional, list of years to pull
nfl.import_sc_lines(years)
Returns scoring lines for years specified
years : optional, list of years to pull
nfl.import_officials(years)
Returns official information by game for the years specified
years : optional, list of years to pull
nfl.import_draft_picks(years)
Returns list of draft picks for the years specified
years : optional, list of years to pull
nfl.import_draft_values()
Returns relative values by generic draft pick according to various popular valuation methods
nfl.import_team_desc()
Returns dataframe with color/logo/etc information for all NFL team
nfl.import_schedules(years)
Returns dataframe with schedule information for years specified
years : required, list of years to pull data for (earliest available is 1999)
nfl.import_combine_data(years, positions)
Returns dataframe with combine results for years and positions specified
years : optional, list or range of years to pull data from
positions : optional, list of positions to be pulled (standard format - WR/QB/RB/etc.)
nfl.import_ids(columns, ids)
Returns dataframe with mapped ids for all players across most major NFL and fantasy football data platforms
columns : optional, list of columns to return
ids : optional, list of ids to return
Additional features
nfl.clean_nfl_data(df)
Runs descriptive data (team name, player name, etc.) through various cleaning processes
df : required, dataframe to be cleaned
I'd like to recognize all of Ben Baldwin, Sebastian Carl, and Lee Sharpe for making this data freely available and easy to access. I'd also like to thank Tan Ho, who has been an invaluable resource as I've worked through this project, and Josh Kazan for the resources and assistance he's provided.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.