A python project for reimaging ranking premier league seasons by using ELO rather than the traditional points system using historical data from premier league matches soruced from Kaggle: https://www.kaggle.com/datasets/evangower/premier-league-matches-19922022.
- Calculates Elo ratings for all Premier League teams in a given season.
- Uses a custom Elo update formula with adjustable sensitivity and K-factor.
- Reads match data from a CSV file (
premier-league-matches.csv). - Plots Elo rating progression for selected teams across all gameweeks.
- Outputs detailed Elo changes and league table after each gameweek.
- Python 3.x
- pandas
- matplotlib
Install dependencies with:
pip install pandas matplotlib- Place the
premier-league-matches.csvfile in the project directory. - Run the script:
python calc.py- The script will:
- Process the matches for the season specified by
SEASONENDincalc.py. - Print Elo changes and league tables for each gameweek.
- Display a plot of Elo ratings for selected teams (default: Arsenal, Manchester City).
- Process the matches for the season specified by
- calc.py: Main script for Elo calculation and visualization.
- premier-league-matches.csv: Historical Premier League match results. Columns include:
Season_End_Year,Wk,Date,Home,HomeGoals,AwayGoals,Away,FTR
- To change the season analyzed, modify the
SEASONENDvariable incalc.py. - To plot different teams, edit the
teamnamelist near the end ofcalc.py. - Adjust
K_FACTORandSENSITIVITYincalc.pyto experiment with Elo calculation dynamics.
- Console output for each gameweek, showing match results and Elo changes.
- Matplotlib plot showing Elo rating progression for selected teams.