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