diff --git a/script/analysis/student_analysis.py b/script/analysis/student_analysis.py index d26d48db870d02870553cf74567ee848fb81de3e..7397e78bff7894dc8a81d6df2a0c22ff65b1b52d 100644 --- a/script/analysis/student_analysis.py +++ b/script/analysis/student_analysis.py @@ -10,6 +10,36 @@ def average_ira(d): ch_total = np.sum(temp['CH_TOTAL']) * 100 print(aux/ch_total) +def ira_por_quantidade_disciplinas(df): + students = {} + df = df.dropna(subset=['MEDIA_FINAL']) + total_students = len(df["MATR_ALUNO"]) + for i in range(total_students): + matr = (df["MATR_ALUNO"][i]) + if(not (matr in students)): + students[matr] = {} + + + ano = str(df["ANO"][i]) + semestre = str(df["PERIODO"][i]) + situacao = int(df["SITUACAO"][i]) + nota = float(df["MEDIA_FINAL"][i]) + + + + + if(situacao in Situation.SITUATION_AFFECT_IRA): + if not(ano+"/"+semestre in students[matr]): + students[matr][ano+"/"+semestre] = [0,0] + students[matr][ano+"/"+semestre][0]+=nota + students[matr][ano+"/"+semestre][1]+=1 + + for matr in students: + for periodo in students[matr]: + if(students[matr][periodo][1] != 0): + students[matr][periodo][0]/=students[matr][periodo][1]*100 + print(students) + def indice_aprovacao_semestral(df): students = {} df = df.dropna(subset=['MEDIA_FINAL']) diff --git a/script/build_cache.py b/script/build_cache.py index af57d36be9df1ecff2721aa6ad1b1c4a52bd8759..0ffd1709391f4578e23496fe4762d8a242bea68d 100644 --- a/script/build_cache.py +++ b/script/build_cache.py @@ -38,7 +38,8 @@ def generate_degree_data(path, dataframe): def generate_student_data(path,dataframe): #~ aluno_turmas(dataframe) - indice_aprovacao_semestral(dataframe) + #~ indice_aprovacao_semestral(dataframe) + ira_por_quantidade_disciplinas(dataframe) pass def generate_student_list(path):