From 4fcd640e0682fcea4b2b065e28aa02aa4c9ce9e1 Mon Sep 17 00:00:00 2001 From: odair mario <badwolves123@gmail.com> Date: Sat, 28 Oct 2017 13:11:11 -0200 Subject: [PATCH] teste --- script/analysis/course_analysis.py | 69 ++++++------------------------ script/main.py | 6 +-- 2 files changed, 14 insertions(+), 61 deletions(-) diff --git a/script/analysis/course_analysis.py b/script/analysis/course_analysis.py index a0411b7..ea251ff 100644 --- a/script/analysis/course_analysis.py +++ b/script/analysis/course_analysis.py @@ -4,97 +4,52 @@ import json import numpy as np import utils.situations -# 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) # calcula as taxas - - -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'] + diciplines = 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( + disciplines = diciplines.groupby(['COD_ATIV_CURRIC', 'SIGLA', 'counts']).apply( lambda x: func(x, qnt_matr)).reset_index(name='taxas gerais') - # print(disciplina) - return disciplina -# quantidade de vezes cursadas ate obter a aprovacao - + Disciplines= disciplines['COD_ATIV_CURRIC'].drop_duplicates() + for discipline in Disciplines: + print(diciplines.discipline) + # print(discipline) + return disciplines -def qnt_aprov(df): +# quantidade de vezes cursadas ate obter a aprovacao qnt = df.groupby(['MATR_ALUNO', 'COD_ATIV_CURRIC'] ).size().reset_index(name='qnt_aprov') return qnt - -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("--------------------------------------------------------------------------") + c = matr[disciplina, periodo, ano] 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') + 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] -## p = df.groupby(['COD_ATIV_CURRIC','SIGLA']).size().apply(lambda x: (x /c['CI055'])*100) -#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() -## ''' 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',' diff --git a/script/main.py b/script/main.py index addbd10..7b7011c 100644 --- a/script/main.py +++ b/script/main.py @@ -4,15 +4,13 @@ from base.dataframe_base import load_dataframes from build_cache import build_cache from datetime import timedelta from utils.situations import * - +from analysis.course_analysis import * def main(): start_time = time.clock() start_time_exec = time.time() - dataframe = load_dataframes(os.getcwd() + '/' + 'base') - build_cache(dataframe) - + Main(dataframe) cpu_time = timedelta(seconds=round(time.clock() - start_time)) run_time = timedelta(seconds=round(time.time() - start_time_exec)) print("--- Tempo de CPU: {} ---".format(cpu_time)) -- GitLab