From 10fd12014bca6c49a9003ae88123a8c39d9bbd5c Mon Sep 17 00:00:00 2001 From: phowell Date: Wed, 3 May 2023 06:54:46 -0700 Subject: [PATCH] stats - another summary data file attempt --- stats.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/stats.py b/stats.py index df6edea..a324b8e 100644 --- a/stats.py +++ b/stats.py @@ -50,6 +50,7 @@ from collections import defaultdict all_grades_file = f"cache/grades_all.csv" all_courses_file = f"cache/course_grades_all.csv" +all_courses_file2 = f"cache/course_grades_compact.csv" def sem_num_to_code(sem_num): p = re.search(r'^(\d\d\d\d)(\d\d)$', sem_num) @@ -234,7 +235,7 @@ def above_70(li,maximum): above = list(filter(lambda x: x >= cutoff, li)) return round(len(above)/len(li), 3) -def process_one_course_grades(block, output, teacher_to_code, course_to_code): +def process_one_course_grades(block, output, out_c, teacher_to_code, course_to_code): fxns = [mean, median, stdev, min, max, len] c_id = block[0][0] sem = block[0][1] @@ -271,6 +272,7 @@ def process_one_course_grades(block, output, teacher_to_code, course_to_code): #output.writerow( [sem2, crn, course_code, "current score", teacher, mode, cur_pct_passed, cur_mean, cur_median, cur_stdev, cur_min, cur_max, cur_count] ) #output.writerow( [crs_code, pocr, tch_code, mode, final_pct_passed, final_mean, final_median, final_stdev, final_min, final_max, scl_mean, scl_median, scl_stdev, scl_min, scl_max, final_count] ) output.writerow( [crs_code, good_code, pocr, tch_code, mode, final_pct_passed, scl_mean, scl_median, scl_stdev, scl_min, scl_max, final_count] ) + out_c.writerow([crs_code, good_code, pocr, tch_code, mode, final_pct_passed, scl_mean, scl_median, scl_stdev, final_count]) except Exception as e: print("Exception:", e) @@ -308,6 +310,9 @@ def process_grades(): codecs.open('cache/teacher_lookup_codes.json','w','utf-8').write( json.dumps( [teacher_to_code, code_to_teacher], indent=2) ) codecs.open('cache/course_lookup_codes.json','w','utf-8').write( json.dumps( [course_to_code, code_to_course], indent=2) ) + out_compact = codecs.open(all_courses_file2,'w','utf-8') + out_c = csv.writer(out_compact) + out_c.writerow("course_code course pocr_status teacher_code mode percent_passed scl_mean scl_median scl_stdev count".split(" ")) with open(all_courses_file, "w", newline="") as output_f: output = csv.writer(output_f) output.writerow("course_code course pocr_status teacher_code mode percent_passed scl_mean scl_median scl_stdev scl_min scl_max count".split(" ")) @@ -324,14 +329,14 @@ def process_grades(): if index != current_index: if block: - process_one_course_grades(block, output, teacher_to_code, course_to_code) + process_one_course_grades(block, output, out_c, teacher_to_code, course_to_code) block = [] current_index = index block.append(row) if block: - process_one_course_grades(block, output, teacher_to_code, course_to_code) + process_one_course_grades(block, output, out_c, teacher_to_code, course_to_code)