Scraping Premier League results
Seems like there's one major point of redundancy, in that you're performing the same logic on the two different pages you're scraping (requesting site, parsing results, storing in dataframe).
You could eliminate the redundancy with a function that takes in the site URL and performs the logic... something like def get_matches_data(url)...