info = class_info[item] loc = info['location'] periods = info['periods'] # organize by weekday for period in periods: wkd = to_weekday[period['day']] if not wkd in schedule: schedule[wkd] = [] start = period['start'] end = period['end'] schedule[wkd].append((loc, start, end)) # sort by start time for wkd in schedule: schedule[wkd].sort(key=lambda tup:tup[1]) #pp.pprint(schedule) result = get_late_time(id, schedule) feature = get_ratio(result) #feature = get_late_var(result) id_feature[id] = feature return id_feature if __name__ == '__main__': id_features = get_feature() fill_miss_values(id_features, 3, ['00', '36', '39', '56']) write_multi_features_to_csv(id_features, ['early', 'late', 'absent']) #fill_miss_values(id_features, 1, ['00', '36', '39', '56']) #write_feature_to_csv(id_features, 'late_time_var')
def get_feature(func): id_feature = {} for file in os.listdir(dir): if not file.endswith('.txt') : continue id = file.split('.')[0][-2:] if id in ['20', '36', '42', '47', '43']: continue print '--------' print 'id: ' + id result = func(id) id_feature[id] = result return id_feature if __name__ == '__main__': #id_feature = get_feature(loc_entropy) #write_feature_to_csv(id_feature, 'dining_loc_entropy', False) # id_features = get_feature(meal_rate) # write_multi_features_to_csv(id_features, ['breakfast','lunch','supper','snack'], False) id_features = get_feature(time_var) write_multi_features_to_csv(id_features, ['breakfast_var','lunch_var','supper_var','snack_var'])