In [1]:
from student import *

In [8]:
students = import_safe_file("assets/students-2016-new.xlsx")

In [15]:
# workflow to assign students to groups

students_female = get_students_by_keys(students,{'sex':"F"})
students_male = get_students_by_keys(students,{'sex':"M"})
students_female_assigned = assign_students(students_female,19)
students_male_assigned = assign_students(students_male,19)

students_assigned = merge_students(students_male_assigned,students_female_assigned)
write_to_file(students_assigned,"assets/students-2016-assigned.xlsx")

sorted_by_group = sort_by_key(students_assigned,'name')
sorted_by_group = sort_by_key(sorted_by_group,'group')
write_to_file(sorted_by_group,"sorted-by-group.xlsx")


Distributing 0 into 19
Using a group size of 0
Distributing 0 into 19
Using a group size of 0
Sorting 237 elements
Sorting 52 elements
Sorting 6 elements
Sorting 2 elements
Sorting 3 elements
Sorting 2 elements
Sorting 45 elements
Sorting 7 elements
Sorting 3 elements
Sorting 3 elements
Sorting 37 elements
Sorting 5 elements
Sorting 4 elements
Sorting 2 elements
Sorting 31 elements
Sorting 2 elements
Sorting 28 elements
Sorting 3 elements
Sorting 2 elements
Sorting 24 elements
Sorting 3 elements
Sorting 2 elements
Sorting 20 elements
Sorting 18 elements
Sorting 3 elements
Sorting 2 elements
Sorting 14 elements
Sorting 2 elements
Sorting 11 elements
Sorting 9 elements
Sorting 7 elements
Sorting 6 elements
Sorting 5 elements
Sorting 4 elements
Sorting 3 elements
Sorting 2 elements
Sorting 184 elements
Sorting 42 elements
Sorting 6 elements
Sorting 4 elements
Sorting 2 elements
Sorting 35 elements
Sorting 3 elements
Sorting 31 elements
Sorting 3 elements
Sorting 27 elements
Sorting 7 elements
Sorting 5 elements
Sorting 4 elements
Sorting 3 elements
Sorting 19 elements
Sorting 4 elements
Sorting 2 elements
Sorting 14 elements
Sorting 2 elements
Sorting 11 elements
Sorting 3 elements
Sorting 7 elements
Sorting 2 elements
Sorting 4 elements
Sorting 2 elements
Sorting 141 elements
Sorting 33 elements
Sorting 8 elements
Sorting 5 elements
Sorting 4 elements
Sorting 2 elements
Sorting 2 elements
Sorting 24 elements
Sorting 6 elements
Sorting 4 elements
Sorting 2 elements
Sorting 17 elements
Sorting 4 elements
Sorting 2 elements
Sorting 12 elements
Sorting 5 elements
Sorting 2 elements
Sorting 2 elements
Sorting 6 elements
Sorting 2 elements
Sorting 3 elements
Sorting 2 elements
Sorting 107 elements
Sorting 28 elements
Sorting 2 elements
Sorting 25 elements
Sorting 24 elements
Sorting 22 elements
Sorting 21 elements
Sorting 20 elements
Sorting 18 elements
Sorting 16 elements
Sorting 15 elements
Sorting 14 elements
Sorting 3 elements
Sorting 10 elements
Sorting 9 elements
Sorting 8 elements
Sorting 2 elements
Sorting 5 elements
Sorting 4 elements
Sorting 3 elements
Sorting 78 elements
Sorting 23 elements
Sorting 6 elements
Sorting 5 elements
Sorting 4 elements
Sorting 2 elements
Sorting 16 elements
Sorting 5 elements
Sorting 3 elements
Sorting 10 elements
Sorting 3 elements
Sorting 2 elements
Sorting 6 elements
Sorting 2 elements
Sorting 3 elements
Sorting 54 elements
Sorting 16 elements
Sorting 5 elements
Sorting 3 elements
Sorting 10 elements
Sorting 3 elements
Sorting 2 elements
Sorting 6 elements
Sorting 3 elements
Sorting 2 elements
Sorting 2 elements
Sorting 37 elements
Sorting 10 elements
Sorting 4 elements
Sorting 3 elements
Sorting 2 elements
Sorting 5 elements
Sorting 2 elements
Sorting 2 elements
Sorting 26 elements
Sorting 9 elements
Sorting 2 elements
Sorting 6 elements
Sorting 2 elements
Sorting 3 elements
Sorting 2 elements
Sorting 16 elements
Sorting 4 elements
Sorting 2 elements
Sorting 11 elements
Sorting 9 elements
Sorting 7 elements
Sorting 5 elements
Sorting 4 elements
Sorting 2 elements
Sorting 237 elements
Sorting 12 elements
Sorting 211 elements
Sorting 185 elements
Sorting 65 elements
Sorting 52 elements
Sorting 26 elements
Sorting 13 elements
Sorting 13 elements
Sorting 107 elements
Sorting 94 elements
Sorting 55 elements
Sorting 41 elements
Sorting 28 elements
Sorting 14 elements
Sorting 26 elements
Sorting 13 elements
Sorting 13 elements

In [10]:
for group in range(1,19):
    show_group_stats(sorted_by_group,group)


Stats for group 1
Number of students: 12
Percentage male: 0.3333333333333333

Stats for group 2
Number of students: 14
Percentage male: 0.35714285714285715

Stats for group 3
Number of students: 13
Percentage male: 0.38461538461538464

Stats for group 4
Number of students: 13
Percentage male: 0.38461538461538464

Stats for group 5
Number of students: 13
Percentage male: 0.3076923076923077

Stats for group 6
Number of students: 13
Percentage male: 0.38461538461538464

Stats for group 7
Number of students: 13
Percentage male: 0.38461538461538464

Stats for group 8
Number of students: 13
Percentage male: 0.38461538461538464

Stats for group 9
Number of students: 13
Percentage male: 0.38461538461538464

Stats for group 10
Number of students: 14
Percentage male: 0.35714285714285715

Stats for group 11
Number of students: 14
Percentage male: 0.35714285714285715

Stats for group 12
Number of students: 13
Percentage male: 0.38461538461538464

Stats for group 13
Number of students: 14
Percentage male: 0.35714285714285715

Stats for group 14
Number of students: 13
Percentage male: 0.38461538461538464

Stats for group 15
Number of students: 13
Percentage male: 0.38461538461538464

Stats for group 16
Number of students: 13
Percentage male: 0.38461538461538464

Stats for group 17
Number of students: 13
Percentage male: 0.38461538461538464

Stats for group 18
Number of students: 13
Percentage male: 0.38461538461538464

In [ ]: