From 2581bf5a9ebede6339f087db17ff66b460079f95 Mon Sep 17 00:00:00 2001
From: Legton <legton0@gmail.com>
Date: Fri, 6 Oct 2017 13:52:03 +0000
Subject: [PATCH] arruma alguns bugs

---
 script/analysis/degree_analysis.py | 20 +++++++++++---------
 script/build_cache.py              | 10 ++++++----
 script/main.py                     |  2 +-
 3 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/script/analysis/degree_analysis.py b/script/analysis/degree_analysis.py
index 4beb300..16d76d2 100644
--- a/script/analysis/degree_analysis.py
+++ b/script/analysis/degree_analysis.py
@@ -36,29 +36,31 @@ def general_ira(df):
     return (fixed.MEDIA_FINAL.mean(), fixed.MEDIA_FINAL.std())
 
 def total_evasion_rate(df):
-    total_student = df['MATR_ALUNO'].shape[0]
-    total_evasion = df.loc[(df['FORMA_EVASAO']!=('Sem evasão')) & (df['FORMA_EVASAO']!=('Formatura')) & (df['FORMA_EVASAO']!=('Reintegração'))].shape[0]
+    students = df['MATR_ALUNO'].drop_duplicates()
+    total_student = students.shape[0]
+    total_evasion = students.loc[(df.FORMA_EVASAO != EvasionForm.EF_ATIVO) & (df.FORMA_EVASAO != EvasionForm.EF_FORMATURA) & (df.FORMA_EVASAO != EvasionForm.EF_REINTEGRACAO)].shape[0]
+    #voltando um aluno com evasao a mais do que deveria, devido a mudanca na tabela tem um ATIVO a menos
 
     return total_evasion / total_student
 
 def average_graduation_time(df):
-    graduates = df.loc[(df.FORMA_EVASAO == ('Formatura'))]
+    graduates = df.loc[(df.FORMA_EVASAO == EvasionForm.EF_FORMATURA)]
     total_graduate = graduates.shape[0]
     average_time = 0
     for index, row in graduates.iterrows():
         year_end = 2016
         semester_end = 2
-        if pd.notnull(row['PERIODO_EVASAO']):
-            year_end = int(row['PERIODO_EVASAO'][:4])
+        if pd.notnull(row['ANO_EVASAO']):
+            year_end = int(row['ANO_EVASAO'])
             try: 
-                semester_end = int(row['PERIODO_EVASAO'][5])
+                semester_end = int(row['SEMESTRE_EVASAO'])
             except ValueError:
                 semester_end = 2
-        year = int(row['PERIODO_INGRESSO'][:4])
-        semester = int(row['PERIODO_INGRESSO'][5])
+        year = int(row['ANO_INGRESSO'])
+        semester = int(row['SEMESTRE_INGRESSO'])
         difference = 2 * (year_end - year) + (semester_end - semester) + 1
         average_time += difference
     average_time /= total_graduate
     average_time /= 2
-    
+
     return average_time
\ No newline at end of file
diff --git a/script/build_cache.py b/script/build_cache.py
index 57615e1..ec66bab 100644
--- a/script/build_cache.py
+++ b/script/build_cache.py
@@ -23,7 +23,7 @@ def build_cache(dataframe):
     build_path(path)
 
     generate_student_data(path, dataframe)
-#    generate_degree_data(path, dataframe)
+    generate_degree_data(path, dataframe)
     generate_student_data(path,dataframe)
 #    generate_student_list(path)
 #    generate_admission_data(path)
@@ -32,9 +32,11 @@ def build_cache(dataframe):
 #    generate_course_general_data(path)
 
 def generate_degree_data(path, dataframe):
-    de_an.average_graduation(dataframe)
-    de_an.general_failure(dataframe)
-    de_an.general_ira(dataframe)
+    average_graduation(dataframe)
+    general_failure(dataframe)
+    general_ira(dataframe)
+    total_evasion_rate(dataframe)
+    average_graduation_time(dataframe)
     pass
 
 def generate_student_data(path,dataframe):
diff --git a/script/main.py b/script/main.py
index 979bc78..8e3f306 100644
--- a/script/main.py
+++ b/script/main.py
@@ -3,13 +3,13 @@ import time
 from base.dataframe_base import load_dataframes
 from build_cache import build_cache
 from datetime import timedelta
+from analysis.degree_analysis import *
 
 def main():
     start_time = time.clock()
     start_time_exec = time.time()
 
     dataframe = load_dataframes(os.getcwd() + '/' + 'base')
-
     build_cache(dataframe)
 
     cpu_time = timedelta(seconds=round(time.clock() - start_time))
-- 
GitLab