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

fsfZZ

parent 71ec3197
No related branches found
No related tags found
1 merge request!1WIP: Development
......@@ -33,22 +33,29 @@ def analysis(df):
disciplina = disciplinas.groupby(['COD_ATIV_CURRIC', 'SITUACAO', 'Quantidade']).apply(
lambda x: func(x, qnt_matr)).reset_index(name='Taxas gerais')
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):
# codigo que transforma o dataframe em um dicionario
dict_disciplina = {}
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
# separa o dataframe em disciplina
disc = disciplina.loc[disciplina['COD_ATIV_CURRIC']==dis]
disc = disc.drop('COD_ATIV_CURRIC',1) # elimina a coluna codigo
# seta a coluna SITUACAO como index
disc = disc.set_index('SITUACAO').to_dict()
# para caso uma discipl. nao tenha um campo, coloca o campo com valor 0
for i in Situation.SITUATIONS:
if not(i[0] in disc['Quantidade'].keys()):
disc['Quantidade'][i[0]] = 0
disc['Taxas gerais'][i[0]] = 0
dict_disciplina[dis] = disc
return dict_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):
# cria o json
with open(dis+'.json','w') as f:
json.dump(disc,f,indent=4)
......@@ -69,16 +76,38 @@ def func_semestre(x, matr):
def analysis_semestre(df):
qnt_matr_semestre = matr_semestre(df)
discipline_semestre = df.groupby(['COD_ATIV_CURRIC', 'PERIODO', 'ANO', 'SITUACAO']).size(
).reset_index(name='counts_semestre')
discipline_semestre = discipline_semestre.groupby(['COD_ATIV_CURRIC', 'PERIODO', 'ANO', 'SITUACAO']).apply(lambda x: func_semestre(x,
qnt_matr_semestre)).reset_index(name='taxas_semetrais')
discipline_semestre = df.groupby(['COD_ATIV_CURRIC', 'PERIODO', 'ANO', 'SITUACAO'])
discipline_semestre = discipline_semestre.size()
discipline_semestre = discipline_semestre.reset_index(name='counts_semestre')
discipline_semestre = discipline_semestre.groupby(['COD_ATIV_CURRIC', 'PERIODO', 'ANO', 'SITUACAO'])
discipline_semestre = discipline_semestre.apply(lambda x: func_semestre(x, qnt_matr_semestre))
discipline_semestre = discipline_semestre.reset_index(name='taxas_semetrais')
for dis in qnt_matr_semestre.keys():
dis = ['CI055']
disc = discipline_semestre.loc[discipline_semestre['COD_ATIV_CURRIC']==dis[0]].drop('COD_ATIV_CURRIC',1) # elimina a coluna codigo
disc = disc.drop('level_4',1)
print(dis[0])
print(disc.set_index('ANO'))
# seta a coluna SITUACAO como index
disc = disc.set_index('ANO').to_dict('index')
# with open(dis+'.json','w') as f:
# json.dump(disc,f,indent=4)
print("--------------------------------------------------------------------------------")
break
return discipline_semestre
def Main(df):
Analysis = analysis(df)
# Analysis = analysis(df)
Analysis_semestre = analysis_semestre(df)
matr = counts_matr(df)
df_to_json(Analysis,matr)
matr_semes = matr_semestre(df)
# matr = counts_matr(df)
# df_to_json(Analysis,matr)
# matr_semes = matr_semestre(df)
# print_analise(matr_semes)
......@@ -12,8 +12,8 @@ def main():
dataframe = load_dataframes(os.getcwd() + '/' + 'base')
build_cache(dataframe)
Main(dataframe)
cpu_time = timedelta(seconds=round(time.clock() - start_time))
Main(dataframe)
run_time = timedelta(seconds=round(time.time() - start_time_exec))
print("--- Tempo de CPU: {} ---".format(cpu_time))
print("--- Tempo total: {} ---".format(run_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