Sports data analysis with python programming.
sports data analysis with python programming class.
One way to judge a basketball lineup is to determine the point differential when that particular combination of players is in the game – in other words, how many points does a particular lineup score vs how many do they give up to their opponents? In this assignment you will determine the best lineup for each NBA team over the 2009 season.
Write a program (or a Jupyter/Python notebook) to calculate the point differential for each lineup for each NBA team during the 2009 season. The data is in the Basketball/PBP/2009 folder.(file is attached) Each csv file holds data for one NBA game; the file name includes the date of the game followed by the visiting team then the home team. Each row of the file represents an event, where an event is a shot, a foul, a rebound, etc. For the purpose of this assignment you need only deal with a limited number of fields. Fields 0-4 hold the names of the visiting team players on the floor when the event occurred; fields 5-9 hold the names of the home team players on the floor. For the most part, you only need the points field, providing the number of points scored on the event. Oddly (and unfortunately), the points field does not register points scored on free throws. To capture those points, you'll need the etype field and the result field. If the etype is free throw and the result is made, then one point is scored. In all cases, there are two ways to determine which team scored the points. You can use the team field; alternatively, you can use the player field and find out whether the player is listed in field 0 to 4 (visiting team) or fields 5 to 9 (home team).
I suggest you use a Team class to store lineups and, for each team, store the lineups in a dictionary. The order of names in a lineup are irrelevant. Given five players A, B, C, D, and E, ABCDE, BDACE, and EADCB are all the same lineup. That means lineups are sets. Sets are mutable and can't be used as dictionary keys – but frozensets are immutable and can be dictionary keys.
For each lineup, keep track of the number of points scored and the number allowed. After all files have been processed, calculate the point differential for each lineup for each team. Print the team names (LAL, SAS, etc), the highest point differential for that team, and the lineup with the highest point differential. Either print the output in alphabetical order of team or in descending order of point differential.
The data for this assignment need is attached. Every files needed is all in data folder that i attached