From cd1574f1d593f977d9d981d1b2a80433d7be6d72 Mon Sep 17 00:00:00 2001
From: odair mario <badwolves123@gmail.com>
Date: Tue, 26 Dec 2017 23:42:29 -0200
Subject: [PATCH] arruma taxa aprovacao e escreve 70% da listagem das
 disciplina

---
 script/analysis/course_analysis.py | 50 ++++++++++++++++++++----------
 1 file changed, 33 insertions(+), 17 deletions(-)

diff --git a/script/analysis/course_analysis.py b/script/analysis/course_analysis.py
index 835abf4..6893d93 100644
--- a/script/analysis/course_analysis.py
+++ b/script/analysis/course_analysis.py
@@ -319,34 +319,49 @@ def analises_gerais(df,lista_disciplinas):
 #   -nota ultima vez ofertado e desvio padrao
 #   *cursada ate a aprovacao
 def analises_semestrais(df,lista_disciplinas):
+    # [X] -> taxa de aprovacao semestral 
+    # [ ] -> nota media de aprovaçao 
     geral_df = \
     df.groupby(["COD_ATIV_CURRIC","ANO","PERIODO"]).size().reset_index(name
             = "matr" ) 
     df_semestral = df.groupby(["COD_ATIV_CURRIC", "ANO", "PERIODO" ,
-        "MEDIA_FINAL","SITUACAO"]).size().reset_index(name = "qtds" ) 
+       "SITUACAO"]).size().reset_index(name = "qtds" ) 
+    # df_semestral = df.groupby(["COD_ATIV_CURRIC", "ANO", "PERIODO" ,
+    #     "MEDIA_FINAL","SITUACAO"]).size().reset_index(name = "qtds" ) 
     disciplinas = {} 
-    for count,i in enumerate(df_semestral.iterrows()): 
-        disciplina = i[1].COD_ATIV_CURRIC
+    for i in df_semestral.iterrows(): # percorre o dataframe
+        disciplina = i[1].COD_ATIV_CURRIC #nome da disciplina
         if not(disciplina in disciplinas):
             disciplinas[disciplina] = {} 
+
+        # para chave do dicionario ser do formato ano/periodo
         ano = str(int(i[1].ANO)) 
         periodo = str(i[1].PERIODO)   
+        periodo_curso = ano+"/"+periodo # chave do dicionario
+
         situacao = i[1].SITUACAO 
-        media = i[1].MEDIA_FINAL 
-        periodo_curso = ano+"/"+periodo 
+        #verifica se a chave ano/periodo exitste no dicionario
         if not(periodo_curso in disciplinas[disciplina] ): 
-            disciplinas[disciplina][periodo_curso]  = [0.0,0]  
-        if situacao in sit.SITUATION_AFFECT_IRA:
-            disciplinas[disciplina][periodo_curso][0] += media
-            disciplinas[disciplina][periodo_curso][1] +=1
+            disciplinas[disciplina][periodo_curso]  = [0,0] #qtd aprovado,total
+                
+        # se a situacao for igual a aprovado entao qtd de aprovados em
+        # ano/periodo +1
+        if situacao in sit.SITUATION_PASS:
+            disciplinas[disciplina][periodo_curso][0] += 1 # qtd de aprovados
+        
+        #quantidade total de matriculas no periodo ano/periodo
+        disciplinas[disciplina][periodo_curso][1] += 1
+
     for disciplina in disciplinas.keys(): 
         for ano_periodo in disciplinas[disciplina].keys():  
-            media = disciplinas[disciplina][ano_periodo][0]
-            qtd = disciplinas[disciplina][ano_periodo][1]
-            if qtd != 0:
-                disciplinas[disciplina][ano_periodo][0] = media / qtd   
+            qtd_total = disciplinas[disciplina][ano_periodo][1]
+            qtd_aprovados = disciplinas[disciplina][ano_periodo][0]
+            #calcula a taxa de aprovacao por semestre, qtd_aprov/qtd_total 
+            if qtd_total != 0:
+                disciplinas[disciplina][ano_periodo][0] = qtd_aprovados / qtd_total
             else:
                 disciplinas[disciplina][ano_periodo][0] = 0.0
+                
         aprovacao_semestral = disciplinas[disciplina]   
         lista_disciplinas[disciplina]["aprovacao_semestral"] = aprovacao_semestral
 #    -taxa aprovacao semestral
@@ -379,10 +394,11 @@ def listagem_disciplina(lista_disciplinas):
             compara_disciplina.append(aprov_por_ano) 
         compara_aprov[disciplina] = compara_disciplina 
         disciplinas[disciplina] = disciplina_dict["disciplina_nome"]  
-        listagem = {cache:cache,compara_aprov:
-                compara_aprov,disciplinas:disciplinas} 
-        with open("cache/disciplinas.json",'w') as f:
-            f.write(json.dumps(listagem,indent=4)) 
+    listagem = { "cache" : cache,
+            "compara_aprov":  compara_aprov,
+            "disciplinas": disciplinas} 
+    with open("cache/disciplinas.json",'w') as f:
+        f.write(json.dumps(listagem,indent=4)) 
         
 
 def analises_disciplinas(df):
-- 
GitLab