NOTE: This project is still pretty much work in progress so it might introduce many breaking changes.
Basketball analytics using play-by-play data have been an shared interest for many people. However, the lack of processed play-by-play has prohibited such analysis by many.
This project is intended to provide parsing functionality for the play-by-play data from http://stats.nba.com into more a comprehensive format like that on NBAStuffer. It is intended to accompany our research: Adversarial Synergy Graph Model for Predicting Game Outcomes in Human Basketball. to prepare the data. If you are interested in more general statistics or player information, you should definitely check out py-Goldsberry.
While there are still limitations with the current parsing strategy, it does not affect the tabulation of APM and other play-by-play based metrics.
If you just want to use the data that is processed with the package without touching it, you can find a copy of the data from here. You will find the gamelog and game files in JSON format. You may inspect the JSON for the fields that are included in them.
- The data is obtained directly from http://stats.nba.com, the parsed play-by-plays can be verified against the official boxscores.
At the command line
$ pip install statsnba-playbyplay
- Documentation.
- Parse subtypes of events. (e.g. when there is a shot, is it a layup or jumpshot? the raw data provides different codes for these subtypes but I have not yet figured out a way to easily decrypt all of them.)
- More tests at all levels of the package.
- A Github Pages website for showcasing the package.
- Wiki pages on the schema of the parsed data on my S3 bucket.
- Daily updates of the data feed (cronjob or Lambda function on an EC2 instance to track the gamelogs daily and make updates on S3?)