diff --git a/script/analysis/course_analysis.py b/script/analysis/course_analysis.py index 265bdb444773aa0459112b4607f7e5effedf3f5e..a0411b79415c5b031c285a9f43b99a42351f9019 100644 --- a/script/analysis/course_analysis.py +++ b/script/analysis/course_analysis.py @@ -1,10 +1,10 @@ # -*- coding: utf-8 -*- import pandas as pd +import json import numpy as np -# import utils.situations - -df = pd.read_excel("../base/historico.xls") +import utils.situations +# df = pd.read_excel("../base/base-2016-1/historico.xls") # imprime completamente um dataframe @@ -33,20 +33,58 @@ def analysis(df): ).size().reset_index(name='counts') # adiciona mais uma coluna ao df disciplina com as taxas de cada valor de 'SIGLA' disciplina = disciplinas.groupby(['COD_ATIV_CURRIC', 'SIGLA', 'counts']).apply( - lambda x: func(x, matr)).reset_index(name='taxas gerais') + lambda x: func(x, qnt_matr)).reset_index(name='taxas gerais') + # print(disciplina) return disciplina # quantidade de vezes cursadas ate obter a aprovacao def qnt_aprov(df): - qnt = df.groupby(['COD_ATIV_CURRIC', 'MATR_ALUNO']).size() - print_analise(qnt) + qnt = df.groupby(['MATR_ALUNO', 'COD_ATIV_CURRIC'] + ).size().reset_index(name='qnt_aprov') return qnt -matr = counts_matr(df) -analysis(df) -qnt_aprov(df) +def matr_semestre(df): + return df.groupby(['COD_ATIV_CURRIC', 'PERIODO', 'ANO']).size() + + +def func_semestre(x, matr): + # print (matr) + ano = int(x['ANO']) + # print(ano) + periodo = x['PERIODO'].values[0] + disciplina = x['COD_ATIV_CURRIC'].values[0] + c = matr[disciplina,periodo,ano] + # break + # print(x['PERIODO']) + # print("Disciplina: %s\nPeriodo:%s \nAno:%d"%(disciplina,periodo,ano)) + # c = matr['CI056','2'] + # print(c) + # print(disciplina) + # print("--------------------------------------------------------------------------") + return (x['counts_semestre'] / c) + + +def analysis_semestre(df): + qnt_matr_semestre = matr_semestre(df) + discipline_semestre = df.groupby(['COD_ATIV_CURRIC', 'PERIODO', 'ANO', 'SIGLA']).size( + ).reset_index(name='counts_semestre') + discipline_semestre = discipline_semestre.groupby(['COD_ATIV_CURRIC', 'PERIODO', 'ANO', 'SIGLA']).apply(lambda x: func_semestre(x, + qnt_matr_semestre)).reset_index(name='taxas_semetrais') + + return discipline_semestre +def Main(df): + Analysis = analysis(df) + Analysis_semestre = analysis_semestre(df) + matr = counts_matr(df) + matr_semes = matr_semestre(df) + print_analise(merged) + +# main() +# matr = counts_matr(df) +# analysis(df) +# qnt_aprov(df) # ##f = lambda x: x / c[x] diff --git a/script/main.py b/script/main.py index 979bc78769847a0948ea1ca4accf6fbe6b43ea6a..addbd1055924267ce8aae824d9f4d9583015acf2 100644 --- a/script/main.py +++ b/script/main.py @@ -3,6 +3,7 @@ import time from base.dataframe_base import load_dataframes from build_cache import build_cache from datetime import timedelta +from utils.situations import * def main(): start_time = time.clock()