import pandas as pd
import numpy as np
import sqlalchemy
import plotly.express as px
import plotly.figure_factory as ff
from plotly import graph_objects as go
from plotly.subplots import make_subplots
# dados pós
graduacao = pd.read_csv('./dados/graduacao.csv')
# Histórico de inscrições
historico_inscricoes = pd.read_csv('./dados/dados_sps/historico.inscricoes.csv', sep=';')
# status sps
status_sps = pd.read_csv('./dados/status_sps_2021')
# dados sps
sps_geral = pd.read_feather('./dados/dados_sps/sps_geral.feather')
# converte: '2019-S1-B' em '2019-S1-A'
sps_geral_converte = sps_geral.apply(lambda row: row.replace('2019-S1-B','2019-S1-A'))
# converte: '2019-S1-C' em '2019-S1-A'
sps_geral_converte = sps_geral_converte.apply(lambda row: row.replace('2019-S1-C','2019-S1-A'))
# converte: '2020-S1' em '2020-S1-A'
sps_geral_converte = sps_geral_converte.apply(lambda row: row.replace('2020-S1','2020-S1-A'))
# define filtros de processo - 1° Semestre
processo_2021s1 = ['2021-S1-N','2021-S1-T','2021-M1']
processo_2020s1 = ['2020-S1-A','2020-S1-N','2020-S1-T','2020-M1','2020-M2']
processo_2019s1 = ['2019-S1-A','2019-S1-N','2019-M1','2019-M2']
# define filtros de processo - 2° Semestre
# processo_2021s2 = ['2021-S1-N','2021-S1-T','2021-M1']
processo_2020s2 = ['2020-M3','2020-S2-A','2020-S2-T','2020-M4',]
processo_2019s2 = ['2019-M3','2019-S2-N','2019-S2-A','2019-M4',]
campus = ['EC','SP','HT','EAD']
v_processo_bk_anteriors1 = processo_2020s1
v_processo_bk_anteriors2 = processo_2020s2
graduacao_processos_inscritos = graduacao.copy()
graduacao_processos_inscritos['ano_processo'] = graduacao_processos_inscritos.apply(lambda row: row['processo'][0:4], axis=1)
graduacao_processos_inscritos = graduacao_processos_inscritos.groupby(by=['modalidade', 'ano_processo'], as_index=False).sum()
graduacao_processos_inscritos = graduacao_processos_inscritos.sort_values(by = 'modalidade', ascending = False)
fig = px.bar(graduacao_processos_inscritos,
y='inscritos',
x='ano_processo',
text='inscritos',
title= 'Inscritos Graduação',
color='modalidade',
color_discrete_sequence=px.colors.sequential.Blues_r,
labels={'modalidade':'Modalidades', 'ano_processo':'Processos', 'inscritos':'Inscritos'},
height=550
)
# fig.add_annotation(xref='paper', yref='paper', x=1.0, y=-0.2, text='Fonte: INEP - Censo Educacional (2019)', showarrow=False, arrowhead=1)
# fig.update_traces(texttemplate='%{text:.2s}', textposition='outside')
fig.update_layout(uniformtext_minsize=8, uniformtext_mode='hide')
fig.show()
graduacao_processos_inscritos1 = graduacao.copy()
graduacao_processos_inscritos1 = graduacao_processos_inscritos1.groupby(by=['modalidade', 'processo'], as_index=False).sum()
graduacao_processos_inscritos1 = graduacao_processos_inscritos1.sort_values(by = ['processo'], ascending = True)
graduacao_processos_inscritos1 = graduacao_processos_inscritos1[['modalidade','processo','inscritos']].copy()
fig = ff.create_table(graduacao_processos_inscritos1)
fig.show()
# graduacao_processos_inscritos1
graduacao_processos_avaliados = graduacao.copy()
graduacao_processos_avaliados['ano_processo'] = graduacao_processos_avaliados.apply(lambda row: row['processo'][0:4], axis=1)
graduacao_processos_avaliados = graduacao_processos_avaliados.groupby(by=['modalidade', 'ano_processo'], as_index=False).sum()
graduacao_processos_avaliados = graduacao_processos_avaliados.sort_values(by = 'modalidade', ascending = False)
fig = px.bar(graduacao_processos_avaliados,
y='avaliados',
x='ano_processo',
text='avaliados',
title= 'Avaliados no Vestibular - Graduação',
color='modalidade',
color_discrete_sequence=px.colors.sequential.Blues_r,
labels={'modalidade':'Modalidades', 'ano_processo':'Processos', 'avaliados':'Avaliados'},
height=550
)
# fig.add_annotation(xref='paper', yref='paper', x=1.0, y=-0.2, text='Fonte: INEP - Censo Educacional (2019)', showarrow=False, arrowhead=1)
# fig.update_traces(texttemplate='%{text:.2s}', textposition='outside')
fig.update_layout(uniformtext_minsize=8, uniformtext_mode='hide')
fig.show()
graduacao_processos_avaliados1 = graduacao.copy()
graduacao_processos_avaliados1 = graduacao_processos_avaliados1.groupby(by=['modalidade', 'processo'], as_index=False).sum()
graduacao_processos_avaliados1 = graduacao_processos_avaliados1.sort_values(by = ['processo'], ascending = True)
graduacao_processos_avaliados1 = graduacao_processos_avaliados1[['modalidade','processo','avaliados']].copy()
fig = ff.create_table(graduacao_processos_avaliados1)
fig.show()
graduacao_processos_matriculados = graduacao.copy()
graduacao_processos_matriculados['ano_processo'] = graduacao_processos_matriculados.apply(lambda row: row['processo'][0:4], axis=1)
graduacao_processos_matriculados = graduacao_processos_matriculados.groupby(by=['modalidade', 'ano_processo'], as_index=False).sum()
graduacao_processos_matriculados = graduacao_processos_matriculados.sort_values(by = 'modalidade', ascending = False)
fig = px.bar(graduacao_processos_matriculados,
y='matriculados',
x='ano_processo',
text='matriculados',
title= 'Matriculados no Vestibular - Graduação',
color='modalidade',
color_discrete_sequence=px.colors.sequential.Blues_r,
labels={'modalidade':'Modalidades', 'ano_processo':'Processos', 'matriculados':'Matriculados'},
height=550
)
# fig.add_annotation(xref='paper', yref='paper', x=1.0, y=-0.2, text='Fonte: INEP - Censo Educacional (2019)', showarrow=False, arrowhead=1)
# fig.update_traces(texttemplate='%{text:.2s}', textposition='outside')
fig.update_layout(uniformtext_minsize=8, uniformtext_mode='hide')
fig.show()
graduacao_processos_matriculados1 = graduacao.copy()
graduacao_processos_matriculados1 = graduacao_processos_matriculados1.groupby(by=['modalidade', 'processo'], as_index=False).sum()
graduacao_processos_matriculados1 = graduacao_processos_matriculados1.sort_values(by = ['processo'], ascending = True)
graduacao_processos_matriculados1 = graduacao_processos_matriculados1[['modalidade','processo','matriculados']].copy()
fig = ff.create_table(graduacao_processos_matriculados1)
fig.show()
graduacao_processos_rematriculas = graduacao.copy()
graduacao_processos_rematriculas['ano_processo'] = graduacao_processos_rematriculas.apply(lambda row: row['processo'][0:4], axis=1)
graduacao_processos_rematriculas = graduacao_processos_rematriculas.groupby(by=['modalidade', 'ano_processo'], as_index=False).sum()
graduacao_processos_rematriculas = graduacao_processos_rematriculas.sort_values(by = 'modalidade', ascending = False)
fig = px.bar(graduacao_processos_rematriculas,
y='rematriculas',
x='ano_processo',
text='rematriculas',
title= 'Rematrículas no Vestibular - Graduação',
color='modalidade',
color_discrete_sequence=px.colors.sequential.Blues_r,
labels={'modalidade':'Modalidades', 'ano_processo':'Processos', 'rematriculas':'Rematrículas'},
height=550
)
# fig.add_annotation(xref='paper', yref='paper', x=1.0, y=-0.2, text='Fonte: INEP - Censo Educacional (2019)', showarrow=False, arrowhead=1)
# fig.update_traces(texttemplate='%{text:.2s}', textposition='outside')
fig.update_layout(uniformtext_minsize=8, uniformtext_mode='hide')
fig.show()
graduacao_processos_rematriculas1 = graduacao.copy()
graduacao_processos_rematriculas1 = graduacao_processos_rematriculas1.groupby(by=['modalidade', 'processo'], as_index=False).sum()
graduacao_processos_rematriculas1 = graduacao_processos_rematriculas1.sort_values(by = ['processo'], ascending = True)
graduacao_processos_rematriculas1 = graduacao_processos_rematriculas1[['modalidade','processo','rematriculas']].copy()
fig = ff.create_table(graduacao_processos_rematriculas1)
fig.show()
graduacao_processos_matricula_rematricula = graduacao.copy()
graduacao_processos_matricula_rematricula = graduacao_processos_matricula_rematricula.sort_values(by = ['processo'], ascending = True)
graduacao_processos_matricula_rematricula['ano_processo'] = graduacao_processos_matricula_rematricula.apply(lambda row: row['processo'][0:4], axis=1)
avaliacao_funil = graduacao_processos_matricula_rematricula.copy()
graduacao_processos_matricula_rematricula = graduacao_processos_matricula_rematricula[['modalidade','processo','ano_processo','matriculados','rematriculas']].copy()
graduacao_processos_matricula_rematricula = graduacao_processos_matricula_rematricula.groupby(by=['ano_processo'], as_index=False).sum()
# graduacao_processos_matricula_rematricula = graduacao_processos_matricula_rematricula.sort_values(by = ['rematriculas','matriculados'], ascending = True)
fig = ff.create_table(graduacao_processos_matricula_rematricula)
fig.show()
avaliacao_funil_grad = pd.merge(graduacao_processos_inscritos1, graduacao_processos_avaliados1, how="outer", on=['processo', 'modalidade'])
avaliacao_funil_grad = pd.merge(avaliacao_funil_grad, graduacao_processos_matriculados1, how="outer", on=['processo', 'modalidade'])
# Taxa de conversão Presencial - Graduação
avaliacao_funil_grad_presencial = avaliacao_funil_grad[avaliacao_funil_grad.modalidade == 'presencial']
avaliacao_funil_grad_presencial['conv_ins_ava'] = round(avaliacao_funil_grad_presencial.avaliados / avaliacao_funil_grad_presencial.inscritos, 2)
avaliacao_funil_grad_presencial['conv_ins_mat'] = round(avaliacao_funil_grad_presencial.matriculados / avaliacao_funil_grad_presencial.inscritos, 2)
avaliacao_funil_grad_presencial['conv_ava_mat'] = round(avaliacao_funil_grad_presencial.matriculados / avaliacao_funil_grad_presencial.avaliados, 2)
avaliacao_funil_grad_presencial
# fig = px.line(avaliacao_funil_grad_presencial,
# x='processo',
# y=['conv_ins_ava','conv_ins_mat','conv_ava_mat'],
# color='modalidade',
# # text= ['conv_ins_ava','conv_ins_mat','conv_ava_mat'],
# markers=True
# )
# # fig.update_traces(texttemplate='%{text:.2s}', textposition='outside')
# fig.show()
fig = ff.create_table(avaliacao_funil_grad_presencial)
fig.show()
# import plotly.express as px
# fig = px.funnel_area(names=["The 1st","The 2nd", "The 3rd", "The 4th", "The 5th"],
# values=[5, 4, 3, 2, 1])
# fig.show()
# Taxa de conversão EAD - Graduação
avaliacao_funil_grad_ead = avaliacao_funil_grad[avaliacao_funil_grad.modalidade == 'ead']
avaliacao_funil_grad_ead['conv_ins_ava'] = round(avaliacao_funil_grad_ead.avaliados / avaliacao_funil_grad_ead.inscritos, 2)
avaliacao_funil_grad_ead['conv_ins_mat'] = round(avaliacao_funil_grad_ead.matriculados / avaliacao_funil_grad_ead.inscritos, 2)
avaliacao_funil_grad_ead['conv_ava_mat'] = round(avaliacao_funil_grad_ead.matriculados / avaliacao_funil_grad_ead.avaliados, 2)
fig = ff.create_table(avaliacao_funil_grad_ead)
fig.show()
7. Comparativo por Status
# EAD
status_sps_ead = status_sps[status_sps.campus == 'ead']
status_sps_ead
fig = px.bar(status_sps_ead,
x='status', y=['matricula_graduacao','rematricula_graduacao'],
title='Matrículas e Rematriculas - Graduação',
# color=['matricula_graduacao','rematricula_graduacao'],
# color_discrete_sequence=px.colors.sequential.Blues_r,
# text=['matricula_graduacao','rematricula_graduacao'],
# labels={'bk_group_processo':'Ano Processo','inscritos':'Inscritos','modalidade': 'Modalidades'},
barmode='group',
height=600)
# fig.add_annotation(xref='paper', yref='paper', x=1, y=1.06, text='Fonte: Sistema de Processo Seletivo Próprio',showarrow=False, arrowhead=1)
fig.update_traces(textposition='outside')
fig.show()
status_sps_ead = status_sps_ead[['status','matricula_graduacao','rematricula_graduacao']].copy()
status_sps_ead
# fig = ff.create_table(status_sps_ead)
# fig.show()