BurntSushi/nfldb
BurntSushi/nfldb has 1,080 GitHub stars and 254 forks. GitHot measured -1 in 7 days. Last checked 2026-11-11 01:03 UTC. Last push 2021-01-26.
A library to manage and update NFL data in a relational database.
Measured star growth
- in 24h
- Update delayed
- in 7 days
- -1
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalTHIS PROJECT IS UNMAINTAINED.
nfldb is a relational database bundled with a Python module to quickly and conveniently query and update the database with data from active games. Data is imported from nflgame, which in turn gets its data from a JSON feed on NFL.com's live GameCenter pages. This data includes, but is not limited to, game schedules, scores, rosters and play-by-play data for every preseason, regular season and postseason game dating back to 2009.
It can also be used with nflvid to search for and watch video of plays. Please see the nfldb wiki for more details on how to get that working.
Here is a small teaser that shows how to use nfldb to find the top five passers in the 2012 regular season:
import nfldb
db = nfldb.connect()
q = nfldb.Query(db)
q.game(season_year=2012, season_type='Regular')
for pp in q.sort('passing_yds').limit(5).as_aggregate():
print pp.player, pp.passing_yds
And the output is:
[andrew@Liger ~] python2 top-five.py
Drew Brees (NO, QB) 5177
Matthew Stafford (DET, QB) 4965
Tony Romo (DAL, QB) 4903
Tom Brady (NE, QB) 4799
Matt Ryan (ATL, QB) 4719
Documentation and getting help
nfldb has comprehensive API documentation. Tutorials, more examples and a description of the data model can be found on the nfldb wiki.
If you need any help or have found a bug, please
open a new issue on nfldb's issue
tracker
or join us at our IRC channel #nflgame on FreeNode.
Installation and dependencies
nfldb depends on the following Python packages available in PyPI: nflgame, psycopg2, pytz and enum34. nfldb also needs PostgreSQL installed with an available empty database.
I've only tested nfldb with Python 2.7 on a Linux system. In theory, nfldb
should be able to work on Windows and Mac systems as long as you can get
PostgreSQL running. It is not Python 3 compatible (yet, mostly because of
the nflgame dependency).
Please see the installation guide on the nfldb wiki for instructions on how to setup nfldb.
Entity-relationship diagram
Here's a condensed version that excludes play and player statistics:
There is also a full PDF version that includes every column in the database.
The nfldb wiki has a description of the data model.
The most recent version of the nfldb PostgreSQL database is available here: http://burntsushi.net/stuff/nfldb/nfldb.sql.zip.
Explore related projects
Asabeneh/30-Days-Of-Python
The 30 Days of Python programming challenge is a step-by-step guide to learn the Python programming language in 30 days. This challenge may take more than 100 days. Follow your own pace. These videos may help too: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,486 starsgrafana/grafana
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
77,790 starsredis/redis
For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server, and document and vector query engine.
77,332 starsapache/superset
Apache Superset is a Data Visualization and Data Exploration Platform
75,455 stars