Rating tennis players in a database, taking days to run
Without knowing what your csv file is structured, it is hard to give too much concrete.  I do have some suggestions, however.


You can most likely drastically increase performance by converting strings like the player names to categorical data.  Strings are slow in pandas, especially string lookup in a large column (as you have here many times).  Using categeorical data converts it to integers seamlessly behind-the scenes, so you can benefit from using strings while still have fast lookups.
You should loop over the rows rather than re-indexing so much.  In fact all you really need is the winner name and loser name from each match, which you can get at the beginning of each loop.
You may not be able to calculate the Rating all at once, but you can calculate Number of Games all at once by just counting how many times a player is a loser and adding that to how many times the same player is a winner.
Your other functions are one-liners.  This is probably a small part, but it would be better to not have them as functions at all.