Skip to content
Snippets Groups Projects
Commit 4fcd640e authored by odair mario's avatar odair mario
Browse files

teste

parent 8ec8f741
No related branches found
No related tags found
1 merge request!1WIP: Development
......@@ -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','
......@@ -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))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment