A program to convert the results of a Formula 1 season from one points-scoring system to another, along with a data scraper used to compile historical results from the web. Both programs were made using Python.
The converter program imports .csv files containing
the race results from the selected season. The .csv files are made using data scraped from historical results listed on f1-fansite.com. The scraper uses the Pandas data analysis library to read the HTML and convert
the needed data to an easily read format.
The user selects a season they want to score, and one of the points scoring systems used in Formula One (e.g. the format used between 2003 and 2009 where the top 8 finishers were awarded points from 10 to 1). The program also tracks the number of times a
driver has finished in a particular position (e.g. three 1st place finishes, two 2nd place finishes, etc.). This information is required to track, as Formula One uses a countback system to break ties, with the drivers tied on points being ranked based on higher
number of highest-order finishes. Results are tracked by counting each driver's number of finishes in each position, and stored in a dictionary so that accessing the results for tabulation is quick.
The program yields interesting results. For instance, if the 1999 season was scored using the system used between 2010 and 2018, there would be a different champion. If the 2007 season was scored using the system used between 2010 and 2018, the original gap of
one point between 1st and 2nd would grow to a larger one.
To do: Add the current scoring system, which is identical to the 2010-2018 one, except that the driver with the fastest racing lap is awarded an additional point, provided they finish 10th or higher. This may not be able to be applied to all seasons, however,
since fastest laps weren't always tracked in early seasons. Another functionality that I'm considering adding is correctly scoring races that were ended prior to 75% of race distance (due to severe weather, etc.). Races that are ended before 75% of the scheduled
distance is completed results in drivers being awarded half points. This is exceptionally rare, and last happened at the 2009 Malaysian Grand Prix due to a monsoon. I would need to make changes to the scraper to indicate whether a race awarded half-points or not,
which is contingent on that information being made available on f1-fansite.com.