Count the number of riders in each category
Set membership
valid_clubs = []
with open(&quot;validclubs.txt&quot;) as f:
    for line in f:
        valid_clubs.append(line)

should be
with open(&quot;validclubs.txt&quot;) as f:
    valid_clubs = {line.strip() for line in f}

Lines coming back from a file handle in Python include their line ending, which you have to strip yourself; and you should be using a set, not a list. Set membership lookups will be much faster than list lookups.
Consider DictReader
The csv module has a reader that gives you back a dictionary based on the headings, so that you do not have to write row[0], but rather row['Category'].
Use Counter
Your list of category ifs can be condensed to a one-liner; read about Counter. This will be easier to use and perform better.
Empty rows
Based on # ignore errors where row is empty, this should be done up-front. Rather than hitting your face on an IndexError and having to ignore it, simply check for an empty row:
if row: