From ee8c311c79a1e9cd908ed853d9d109b28391261e Mon Sep 17 00:00:00 2001 From: odair mario <badwolves123@gmail.com> Date: Sun, 1 Oct 2017 20:59:35 -0300 Subject: [PATCH] qnt vez cursadas ate aprov, sem media --- script/analysis/course_analysis.py | 64 +++++++++++++++--------------- 1 file changed, 31 insertions(+), 33 deletions(-) diff --git a/script/analysis/course_analysis.py b/script/analysis/course_analysis.py index a9f9ce6..dd6591d 100644 --- a/script/analysis/course_analysis.py +++ b/script/analysis/course_analysis.py @@ -1,51 +1,49 @@ # -*- coding: utf-8 -*- - import pandas as pd import numpy as np +# import utils.situations + df = pd.read_excel("../base/historico.xls") # imprime completamente um dataframe + def print_analise(d): - with pd.option_context('display.max_rows', None, 'display.max_columns', 27): - print(d) + with pd.option_context('display.max_rows', None, 'display.max_columns', 27): + print(d) # calcula as taxas -def func(x,matr): - c = matr[x['COD_ATIV_CURRIC']].values[0] - return (x['counts'] / c) - -#quantidade de matriculas -def qnt_matr(df): - return df.groupby(['COD_ATIV_CURRIC']).size() - - -def analise(df): - c = df.groupby(['COD_ATIV_CURRIC']).size() - diciplinas = df.groupby(['COD_ATIV_CURRIC','SIGLA']).size().reset_index(name='counts') - i=diciplinas.groupby(['COD_ATIV_CURRIC','SIGLA','counts']).apply(lambda x: func(x,matr)).reset_index(name='taxas gerais') - print_analise(i) - -matr = qnt_matr(df) -analise(df) - - - - - - - - - - +def func(x, matr): + c = matr[x['COD_ATIV_CURRIC']].values[0] + return (x['counts'] / c) +# 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 + disciplinas = df.groupby(['COD_ATIV_CURRIC', 'SIGLA'] + ).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') + 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') + return qnt + # print(qnt) +matr = counts_matr(df) +analysis(df) +qnt_aprov(df) # ##f = lambda x: x / c[x] @@ -53,9 +51,9 @@ analise(df) #k = (df.sort(['ANO','PERIODO'])) ##(p.apply(lambda x: print(p['COD_ATIV_CURRIC']))) # -## # .size().reset_index(name = "count"); -## # c = p.groupby(['count','SIGLA']).size() +# .size().reset_index(name = "count"); +# c = p.groupby(['count','SIGLA']).size() ## ''' percorre mais uma vez a serie para aplicar a funcao lambida, se a ''' ## c = lambda x: x+1 ## curses = df['COD_ATIV_CURRIC'].drop_duplicates() -## 'MATR_ALUNO',' +# 'MATR_ALUNO',' -- GitLab