Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.63 KB | None | 0 0
  1. from collections import defaultdict
  2.  
  3. all_values = []
  4. age_value_map = defaultdict(list)
  5.  
  6. with open('2015_2017_MaleData.dat') as f:
  7.  
  8.     for line in f.readlines():
  9.  
  10.         # note: columns in data sheet definition
  11.         # are 1-based, hence the -1 in indices
  12.  
  13.         # data sheet defines AGE_A(13-14)
  14.         # as the age of the respondend
  15.  
  16.         age = int(line[12:14])
  17.  
  18.         # data sheet defines MON12PRTS(157)
  19.         # as "Number of female sex partners in last 12 months"
  20.  
  21.         number_str = line[156]
  22.  
  23.         if number_str == ' ':
  24.             # ignore N/A data
  25.             continue
  26.  
  27.         number = int(number_str)
  28.         all_values.append(number)
  29.         age_value_map[age].append(number)
  30.  
  31.  
  32. def calc_median(values):
  33.     middle = len(values) // 2
  34.     sorted_values = sorted(values)
  35.     return sorted_values[middle]
  36.  
  37.  
  38. def age_group_values(age_value_map, youngest, oldest):
  39.     group_values = []
  40.     for age in range(youngest, oldest + 1):
  41.         if age in age_value_map:
  42.             group_values.extend(age_value_map[age])
  43.     return group_values
  44.  
  45.  
  46. print("Overall median: {}".format(calc_median(all_values)))
  47.  
  48. group_18_24 = age_group_values(age_value_map, 18, 24)
  49. print("Median of group 18-25: {}".format(calc_median(group_18_24)))
  50. group_25_34 = age_group_values(age_value_map, 25, 34)
  51. print("Median of group 25-34: {}".format(calc_median(group_25_34)))
  52. group_35_44 = age_group_values(age_value_map, 35, 44)
  53. print("Median of group 35-44: {}".format(calc_median(group_35_44)))
  54. group_45_54 = age_group_values(age_value_map, 45, 54)
  55. print("Median of group 35-44: {}".format(calc_median(group_45_54)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement