So I had a look at your source code (with the caveat that I only just understand python) and you're averaging DPM numbers from logs, which gets you the wrong result - you need to sum damage and time played, then divide the one by the other. The same goes with averaging K/D rather than dividing avg kills by avg deaths.
It might also be worth averaging kills by time instead of by game, since if someone always plays longer games they'd naturally have more kills per game than someone who doesn't, even if they both had the same kills per 30 mins