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

codigo mais limpo

parent c7430986
No related branches found
No related tags found
1 merge request!1WIP: Development
......@@ -3,31 +3,25 @@ import pandas as pd
import json
import numpy as np
import utils.situations
from collections import OrderedDict, defaultdict
# df = pd.read_excel("../base/base-2016-1/historico.xls")
# imprime completamente um dataframe
def print_analise(d):
'''imprime todo o dataframe, por default o pandas so imprime as
10 linhas inicias a 10 finais, com essa funcao o pandas imprime
as linhas '''
with pd.option_context('display.max_rows', None, 'display.max_columns', 27):
print(d)
# calcula as taxas
def func(x, matr):
''' esta funcao recebe como parametro uma linha do dataframe e a
quantidade de matriculas '''
c = matr[x['COD_ATIV_CURRIC']].values[0]
return (x['Quantidade'] / c)
# quantidade de matriculas
def counts_matr(df):
return df.groupby(['COD_ATIV_CURRIC']).size()
# taxas e quantidades semetrais
def analysis(df):
qnt_matr = counts_matr(df) # quantidade de matriculas disciplina
# conta quantas vezes os valores de 'SIGLA' se repete para cada disciplina
......@@ -36,19 +30,22 @@ def analysis(df):
# adiciona mais uma coluna ao df disciplina com as taxas de cada valor de 'SIGLA'
disciplina = disciplinas.groupby(['COD_ATIV_CURRIC', 'SIGLA', 'Quantidade']).apply(
lambda x: func(x, qnt_matr)).reset_index(name='Taxas gerais')
disciplina = disciplina.drop('level_3',1)
for dis in qnt_matr.keys():
disc = disciplina.loc[disciplina['COD_ATIV_CURRIC']==dis].drop('COD_ATIV_CURRIC',1)
disc = disc.set_index('SIGLA').to_dict(into=OrderedDict)
with open(dis+'.json','w') as f:
json.dump(disc,f,indent=4)
return disciplina.set_index('COD_ATIV_CURRIC')
disciplina = disciplina.drop('level_3',1) # retira coluna duplicada do index
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='qnt_aprov')
return qnt
# transforma o dataframe geral em json, # TODO: fazer o mesmo com o semestral
def df_to_json(disciplina,qnt_matr):
for dis in qnt_matr.keys():
disc = disciplina.loc[disciplina['COD_ATIV_CURRIC']==dis].drop('COD_ATIV_CURRIC',1) # separa o dataframe em disciplina e elimina a coluna codigo
# seta a coluna sigla como index
disc = disc.set_index('SIGLA').to_dict()
# cria o json
with open(dis+'.json','w') as f:
json.dump(disc,f,indent=4)
def matr_semestre(df):
return df.groupby(['COD_ATIV_CURRIC', 'PERIODO', 'ANO']).size()
......@@ -61,13 +58,6 @@ def func_semestre(x, matr):
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)
......@@ -82,25 +72,6 @@ def analysis_semestre(df):
def Main(df):
Analysis = analysis(df)
Analysis_semestre = analysis_semestre(df)
# print_analise(Analysis)
matr = counts_matr(df)
df_to_json(Analysis,matr)
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','
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