In honor of Emma Raducanu's historical achievements in 2021, I look at the results of womens' tennis matches over the period 2007-2021. Your objectives are to parse the data, reconstruct tournament brackets, identify the top players, and implement algorithms to provide an alternative rankings for the players. This was project was completed as part of my MSc Applied Social Data Science degree at LSE.
Only fundamental Python data types are used (lists, tuples, dictionaries, numpy.ndarray, etc.) to complete this analysis. Advanced data querying packages and data analysis packages were avoided, in order to further my understanding of fundamental programming concepts.
The repository contains fifteen .csv files with match results, one file for each year. Each file contains the following variables:
Tournament – the name of the tournament that the match was part of. Start date – the date when the tournament starts. End date – the date when the tournament ends. Best of – 3 means that first player to win 2 sets wins match (all WTA matches are best of 3 sets). Player 1, Player 2 – names of the players in the match. Rank 1, Rank 2 – WTA ranks of Player 1 and Player 2 before the start of the tournament. Not all players will have a ranking. Set 1-3 – result for each set played where the score is shown as: number of games won by Player 1 - number of games won by Player 2. The player that wins the most games in a set wins that set. Comment Completed means match was played. Player retired means that the named player withdrew and the other player won by default.
3 algorithms are used to create rankings (Winners Don't Lose, Winners Win and Winners Beat Winners)- the details for which can be found in the Jupyter Notebook.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
LinkedIn- Louis Magowan
Project Link: https://github.com/louismagowan/tennis_algorithms