Introduction to Pandas Using Play-By-Play

By popular demand, attached you will find basic course materials that I developed for a sports analytics course taught at UW-Madison. The goal is simple: introduce Pandas and show how column manipulations, groupings, and report building could be accomplished. This was a working document at the time; and has not been updated since the course.…

Making Blocks Count

When we measure the defensive impact of a player, typically the first arguments we make are the number of blocks and steals that player has obtained. We celebrate players like Dikembe Mutombo and Maurice Cheeks for their prowess in obtaining blocks (2nd all time) and steals (5th all time), respectively. In the latter case, a…

The Art of Sketching: Trajectory Analysis

In a recent 2017 paper posted by Andrew Miller (Harvard University / Philadelphia 76ers) and Luke Bornn (Simon Fraser University / Sacramento Kings) titled “Possession Sketches: Mapping NBA Strategies,” the duo takes a well-known manifold learning technique called trajectory analysis and develops a methodology of classifying NBA actions through the use of functional mapping of…

Deep Dive with Python: Offensive Ratings

The calculation for Offensive Rating, another fruitful Dean Oliver metric, is simple: compute the number of points produced when a player is in the game per 100 possessions that the player is in the game. The computation is performed at a “per possession” rate and scaled out to 100. The challenge lies at being restricted…