import csv


with open('Vmeter.csv', newline='') as csvfile:
    print("Year Men Virgins Percent")
    year_men = 0
    year_v = 0
    year = ""
    reader = csv.DictReader(csvfile)
    for row in reader:
        #select out people between 18 & 30, and sex == 1 is men
        if (18 <= int(row['age']) <= 30) and (row['sex'] == "1"):
            #if on a new year print the previous year
            if year != row['year']:
                if year != "": print(year, year_men, year_v,"{:.2%}".format(year_v/year_men))
                year_men = 0
                year_v = 0
                year = row['year']
        #only count men who answered 0 or more, many lots, several, some,1+ women and had 0 men or N.a. for men
            if ((0 <= int(row['numwomen']) <= 900) or row['numwomen']=="995" or row['numwomen']=="994" or row['numwomen']=="991") and (row['nummen'] == "0" or row['nummen'] == "996")   :
                year_men += 1
                if row['numwomen'] == "0":
                    year_v += 1
    #print out the final year
    print(year, year_men, year_v,"{:.2%}".format(year_v/year_men))
            

#year,id,age,sex,numwomen
#1989,1,22,1,20
#1989,2,40,1,-1


'''
VALUE LABELS
  AGE
      99       "No answer"
      98       "Don't know"
      89       "89 or older"
 / SEX
      2        "Female"
      1        "Male"
 / NUMWOMEN
      999      "No answer"
      998      "Don't know"
      997      "Refused"
      996      "N.a"
      995      "Many,lots"
      994      "Several"
      993      "Garbled text"
      992      "X"
      991      "Some,1+"
      990      "Dash or slash"
      989      "989 or higher"
      -1       "Not applicable"
 / NUMMEN
      999      "No answer"
      998      "Don't know"
      997      "Refused"
      996      "N.a"
      995      "Many,lots"
      994      "Several"
      993      "Garbled text"
      992      "X"
      991      "Some,1+"
      990      "Dash or slash"
      989      "989 or higher"
      -1       "Not applicable"
'''