From 67d7ec410c93762bc4a7ad4535ac46417cfd4c5c Mon Sep 17 00:00:00 2001 From: omdj17 <omdj17@inf.ufpr.br> Date: Wed, 11 Oct 2017 12:01:53 -0300 Subject: [PATCH] analises semtrais prontas --- script/analysis/course_analysis.py | 54 ++++++++++++++++++++++++++---- 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/script/analysis/course_analysis.py b/script/analysis/course_analysis.py index 48338d9..9511b04 100644 --- a/script/analysis/course_analysis.py +++ b/script/analysis/course_analysis.py @@ -1,11 +1,13 @@ # -*- coding: utf-8 -*- import pandas as pd +import json import numpy as np import utils.situations -df = pd.read_excel("../base/base-2016-1/historico.xls") +# df = pd.read_excel("../base/base-2016-1/historico.xls") # imprime completamente um dataframe + def print_analise(d): with pd.option_context('display.max_rows', None, 'display.max_columns', 27): print(d) @@ -19,9 +21,11 @@ def func(x, matr): # quantidade de matriculas + def counts_matr(df): return df.groupby(['COD_ATIV_CURRIC']).size() + def analysis(df): qnt_matr = counts_matr(df) # quantidade de matriculas disciplina # conta quantas vezes os valores de 'SIGLA' se repete para cada disciplina @@ -29,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(['MATR_ALUNO','COD_ATIV_CURRIC']).size().reset_index(name='quantida aprov') + qnt = df.groupby(['MATR_ALUNO', 'COD_ATIV_CURRIC'] + ).size().reset_index(name='qnt_aprov') return qnt # print(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] -- GitLab