From 783efab8faa266304f68689ad6b651b915a8fa2c Mon Sep 17 00:00:00 2001 From: vilelaluiza Date: Thu, 24 Oct 2024 11:37:02 -0300 Subject: [PATCH 01/10] fix data types educacao_especial --- .../br_inep_educacao_especial__distorcao_idade_serie.sql | 2 +- .../br_inep_educacao_especial__docente_aee.sql | 4 ++-- .../br_inep_educacao_especial__docente_formacao.sql | 2 +- .../br_inep_educacao_especial__matricula_aee.sql | 4 ++-- .../br_inep_educacao_especial__taxa_rendimento.sql | 6 +++--- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/models/br_inep_educacao_especial/br_inep_educacao_especial__distorcao_idade_serie.sql b/models/br_inep_educacao_especial/br_inep_educacao_especial__distorcao_idade_serie.sql index c4843e18..2a8451e0 100644 --- a/models/br_inep_educacao_especial/br_inep_educacao_especial__distorcao_idade_serie.sql +++ b/models/br_inep_educacao_especial/br_inep_educacao_especial__distorcao_idade_serie.sql @@ -10,5 +10,5 @@ select safe_cast(ano as int64) ano, safe_cast(sigla_uf as string) sigla_uf, safe_cast(etapa_ensino as string) etapa_ensino, - safe_cast(tdi as numeric) tdi, + safe_cast(tdi as float64) tdi, from `basedosdados-staging.br_inep_educacao_especial_staging.distorcao_idade_serie` as t diff --git a/models/br_inep_educacao_especial/br_inep_educacao_especial__docente_aee.sql b/models/br_inep_educacao_especial/br_inep_educacao_especial__docente_aee.sql index 0fa2f225..45dc6d5b 100644 --- a/models/br_inep_educacao_especial/br_inep_educacao_especial__docente_aee.sql +++ b/models/br_inep_educacao_especial/br_inep_educacao_especial__docente_aee.sql @@ -10,8 +10,8 @@ select safe_cast(ano as int64) ano, safe_cast(sigla_uf as string) sigla_uf, safe_cast(id_municipio as string) id_municipio, - safe_cast(quantidade_docente_regente as int64) quantidade_docente_regente, - safe_cast(quantidade_docente_aee as int64) quantidade_docente_aee, + safe_cast(quantidade_docente_regente as numeric) quantidade_docente_regente, + safe_cast(quantidade_docente_aee as numeric) quantidade_docente_aee, safe_cast( quantidade_docente_regente_formacao_continuada as int64 ) quantidade_docente_regente_formacao_continuada, diff --git a/models/br_inep_educacao_especial/br_inep_educacao_especial__docente_formacao.sql b/models/br_inep_educacao_especial/br_inep_educacao_especial__docente_formacao.sql index 2dca248e..ba4334ed 100644 --- a/models/br_inep_educacao_especial/br_inep_educacao_especial__docente_formacao.sql +++ b/models/br_inep_educacao_especial/br_inep_educacao_especial__docente_formacao.sql @@ -12,7 +12,7 @@ select safe_cast(id_municipio as string) id_municipio, safe_cast(rede as string) rede, safe_cast( - quantidade_docente_formacao_continuada as int64 + quantidade_docente_formacao_continuada as numeric ) quantidade_docente_formacao_continuada, from `basedosdados-staging.br_inep_educacao_especial_staging.docente_formacao` as t diff --git a/models/br_inep_educacao_especial/br_inep_educacao_especial__matricula_aee.sql b/models/br_inep_educacao_especial/br_inep_educacao_especial__matricula_aee.sql index 174da9a4..b15b5053 100644 --- a/models/br_inep_educacao_especial/br_inep_educacao_especial__matricula_aee.sql +++ b/models/br_inep_educacao_especial/br_inep_educacao_especial__matricula_aee.sql @@ -10,7 +10,7 @@ select safe_cast(ano as int64) ano, safe_cast(sigla_uf as string) sigla_uf, safe_cast(rede as string) rede, - safe_cast(quantidade_matricula as int64) quantidade_matricula, - safe_cast(quantidade_matricula_aee as int64) quantidade_matricula_aee, + safe_cast(quantidade_matricula as numeric) quantidade_matricula, + safe_cast(quantidade_matricula_aee as numeric) quantidade_matricula_aee, from `basedosdados-staging.br_inep_educacao_especial_staging.matricula_aee` as t diff --git a/models/br_inep_educacao_especial/br_inep_educacao_especial__taxa_rendimento.sql b/models/br_inep_educacao_especial/br_inep_educacao_especial__taxa_rendimento.sql index 270136ab..de69f9be 100644 --- a/models/br_inep_educacao_especial/br_inep_educacao_especial__taxa_rendimento.sql +++ b/models/br_inep_educacao_especial/br_inep_educacao_especial__taxa_rendimento.sql @@ -10,7 +10,7 @@ select safe_cast(ano as int64) ano, safe_cast(sigla_uf as string) sigla_uf, safe_cast(etapa_ensino as string) etapa_ensino, - safe_cast(taxa_aprovacao as numeric) taxa_aprovacao, - safe_cast(taxa_reprovacao as numeric) taxa_reprovacao, - safe_cast(taxa_abandono as numeric) taxa_abandono, + safe_cast(taxa_aprovacao as float64) taxa_aprovacao, + safe_cast(taxa_reprovacao as float64) taxa_reprovacao, + safe_cast(taxa_abandono as float64) taxa_abandono, from `basedosdados-staging.br_inep_educacao_especial_staging.taxa_rendimento` as t From dbb9f1f77fd20c8f3e9cb1a41ce71615924105be Mon Sep 17 00:00:00 2001 From: vilelaluiza Date: Thu, 24 Oct 2024 22:20:40 -0300 Subject: [PATCH 02/10] add tabelas com recorte de brasil --- ...especial__brasil_distorcao_idade_serie.sql | 15 + ...cacao_especial__brasil_taxa_rendimento.sql | 15 + ...cao_especial__uf_distorcao_idade_serie.sql | 14 + ..._educacao_especial__uf_taxa_rendimento.sql | 16 + ...special_brasil_distorcao_idade_serie.ipynb | 4579 +++++++++++++++++ ...acao_especial_brasil_taxa_rendimento.ipynb | 1661 ++++++ ...nb => educacao_especial_docente_aee.ipynb} | 0 ... educacao_especial_docente_formacao.ipynb} | 0 ... => educacao_especial_matricula_aee.ipynb} | 0 ...o_especial_uf_distorcao_idade_serie.ipynb} | 0 ...ducacao_especial_uf_taxa_rendimento.ipynb} | 0 .../br_inep_educacao_especial/schema copy.yml | 391 ++ 12 files changed, 6691 insertions(+) create mode 100644 models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_distorcao_idade_serie.sql create mode 100644 models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_taxa_rendimento.sql create mode 100644 models/br_inep_educacao_especial/br_inep_educacao_especial__uf_distorcao_idade_serie.sql create mode 100644 models/br_inep_educacao_especial/br_inep_educacao_especial__uf_taxa_rendimento.sql create mode 100644 models/br_inep_educacao_especial/code/educacao_especial_brasil_distorcao_idade_serie.ipynb create mode 100644 models/br_inep_educacao_especial/code/educacao_especial_brasil_taxa_rendimento.ipynb rename models/br_inep_educacao_especial/code/{educacao_especial_aee_docente.ipynb => educacao_especial_docente_aee.ipynb} (100%) rename models/br_inep_educacao_especial/code/{educacao_especial_formacao_docente.ipynb => educacao_especial_docente_formacao.ipynb} (100%) rename models/br_inep_educacao_especial/code/{educacao_especial_aee_matricula.ipynb => educacao_especial_matricula_aee.ipynb} (100%) rename models/br_inep_educacao_especial/code/{educacao_especial_distorcao_idade_serie.ipynb => educacao_especial_uf_distorcao_idade_serie.ipynb} (100%) rename models/br_inep_educacao_especial/code/{educacao_especial_taxa_rendimento.ipynb => educacao_especial_uf_taxa_rendimento.ipynb} (100%) create mode 100644 models/br_inep_educacao_especial/schema copy.yml diff --git a/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_distorcao_idade_serie.sql b/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_distorcao_idade_serie.sql new file mode 100644 index 00000000..b7547236 --- /dev/null +++ b/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_distorcao_idade_serie.sql @@ -0,0 +1,15 @@ +{{ + config( + alias="brasil_distorcao_idade_serie", + schema="br_inep_educacao_especial", + materialized="table", + ) +}} + +select + safe_cast(ano as int64) ano, + safe_cast(etapa_ensino as string) etapa_ensino, + safe_cast(tdi as float64) tdi, +from + `basedosdados-staging.br_inep_educacao_especial_staging.brasil_distorcao_idade_serie` + as t diff --git a/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_taxa_rendimento.sql b/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_taxa_rendimento.sql new file mode 100644 index 00000000..f6138975 --- /dev/null +++ b/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_taxa_rendimento.sql @@ -0,0 +1,15 @@ +{{ + config( + alias="brasil_taxa_rendimento", + schema="br_inep_educacao_especial", + materialized="table", + ) +}} + +select + safe_cast(ano as int64) ano, + safe_cast(etapa_ensino as string) etapa_ensino, + safe_cast(taxa_aprovacao as float64) taxa_aprovacao, + safe_cast(taxa_reprovacao as float64) taxa_reprovacao, + safe_cast(taxa_abandono as float64) taxa_abandono, +from `basedosdados-staging.br_inep_educacao_especial_staging.brasil_taxa_rendimento` as t diff --git a/models/br_inep_educacao_especial/br_inep_educacao_especial__uf_distorcao_idade_serie.sql b/models/br_inep_educacao_especial/br_inep_educacao_especial__uf_distorcao_idade_serie.sql new file mode 100644 index 00000000..5c8fa01f --- /dev/null +++ b/models/br_inep_educacao_especial/br_inep_educacao_especial__uf_distorcao_idade_serie.sql @@ -0,0 +1,14 @@ +{{ + config( + alias="uf_distorcao_idade_serie", + schema="br_inep_educacao_especial", + materialized="table", + ) +}} + +select + safe_cast(ano as int64) ano, + safe_cast(sigla_uf as string) sigla_uf, + safe_cast(etapa_ensino as string) etapa_ensino, + safe_cast(tdi as float64) tdi, +from `basedosdados-staging.br_inep_educacao_especial_staging.uf_distorcao_idade_serie` as t diff --git a/models/br_inep_educacao_especial/br_inep_educacao_especial__uf_taxa_rendimento.sql b/models/br_inep_educacao_especial/br_inep_educacao_especial__uf_taxa_rendimento.sql new file mode 100644 index 00000000..4c8e81d2 --- /dev/null +++ b/models/br_inep_educacao_especial/br_inep_educacao_especial__uf_taxa_rendimento.sql @@ -0,0 +1,16 @@ +{{ + config( + alias="uf_taxa_rendimento", + schema="br_inep_educacao_especial", + materialized="table", + ) +}} + +select + safe_cast(ano as int64) ano, + safe_cast(sigla_uf as string) sigla_uf, + safe_cast(etapa_ensino as string) etapa_ensino, + safe_cast(taxa_aprovacao as float64) taxa_aprovacao, + safe_cast(taxa_reprovacao as float64) taxa_reprovacao, + safe_cast(taxa_abandono as float64) taxa_abandono, +from `basedosdados-staging.br_inep_educacao_especial_staging.uf_taxa_rendimento` as t diff --git a/models/br_inep_educacao_especial/code/educacao_especial_brasil_distorcao_idade_serie.ipynb b/models/br_inep_educacao_especial/code/educacao_especial_brasil_distorcao_idade_serie.ipynb new file mode 100644 index 00000000..8216a77c --- /dev/null +++ b/models/br_inep_educacao_especial/code/educacao_especial_brasil_distorcao_idade_serie.ipynb @@ -0,0 +1,4579 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import zipfile\n", + "import pandas as pd\n", + "import basedosdados as bd\n", + "\n", + "INPUT = os.path.join(os.getcwd(), \"input\")\n", + "OUTPUT = os.path.join(os.getcwd(), \"output\")\n", + "\n", + "os.makedirs(INPUT, exist_ok=True)\n", + "os.makedirs(OUTPUT, exist_ok=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def read_sheet(sheet_name: str, skiprows: int = 3) -> pd.DataFrame:\n", + " return pd.read_excel(\n", + " os.path.join(\n", + " INPUT,\n", + " \"TDI_-_Alunos_com_defici_ncia.xlsx\"\n", + " ),\n", + " skiprows=skiprows,\n", + " sheet_name=sheet_name\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "excel_data = pd.ExcelFile(os.path.join(\n", + " INPUT,\n", + " \"TDI_-_Alunos_com_defici_ncia.xlsx\"\n", + " ))\n", + "\n", + "# Get the sheet names\n", + "sheet_names = excel_data.sheet_names" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "dfs = {\n", + " sheet_name: read_sheet(sheet_name)\n", + " for sheet_name in sheet_names\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'2007': Unnamed: 0 Unnamed: 1 \\\n", + " 0 NaN 0 \n", + " 1 NaN 1 \n", + " 2 NaN 2 \n", + " 3 NaN 3 \n", + " 4 NaN 4 \n", + " 5 NaN 5 \n", + " 6 NaN 11 \n", + " 7 NaN 12 \n", + " 8 NaN 13 \n", + " 9 NaN 14 \n", + " 10 NaN 15 \n", + " 11 NaN 16 \n", + " 12 NaN 17 \n", + " 13 NaN 21 \n", + " 14 NaN 22 \n", + " 15 NaN 23 \n", + " 16 NaN 24 \n", + " 17 NaN 25 \n", + " 18 NaN 26 \n", + " 19 NaN 27 \n", + " 20 NaN 28 \n", + " 21 NaN 29 \n", + " 22 NaN 31 \n", + " 23 NaN 32 \n", + " 24 NaN 33 \n", + " 25 NaN 35 \n", + " 26 NaN 41 \n", + " 27 NaN 42 \n", + " 28 NaN 43 \n", + " 29 NaN 50 \n", + " 30 NaN 51 \n", + " 31 NaN 52 \n", + " 32 NaN 53 \n", + " 33 NaN NaN \n", + " 34 NaN Notas: Foram consideradas a rede total (escola... \n", + " \n", + " Unnamed: 2 Distorção Idade-Série Distorção Idade-Série.1 \\\n", + " 0 Brasil 72.2 60.6 \n", + " 1 Norte 76.1 69.7 \n", + " 2 Nordeste 74.4 64.7 \n", + " 3 Sudeste 69.3 56.5 \n", + " 4 Sul 73.3 59.6 \n", + " 5 Centro-Oeste 78.7 73.6 \n", + " 6 Rondônia 72.8 65.8 \n", + " 7 Acre 67.2 60.0 \n", + " 8 Amazonas 76.3 75.7 \n", + " 9 Roraima 71.0 69.5 \n", + " 10 Pará 78.2 68.4 \n", + " 11 Amapá 76.4 81.0 \n", + " 12 Tocantins 75.4 70.7 \n", + " 13 Maranhão 74.2 61.2 \n", + " 14 Piauí 83.0 69.3 \n", + " 15 Ceará 67.8 56.9 \n", + " 16 Rio Grande do Norte 66.4 74.0 \n", + " 17 Paraíba 73.3 71.6 \n", + " 18 Pernambuco 78.6 64.5 \n", + " 19 Alagoas 72.0 79.2 \n", + " 20 Sergipe 85.0 85.4 \n", + " 21 Bahia 76.7 66.5 \n", + " 22 Minas Gerais 79.0 69.1 \n", + " 23 Espírito Santo 67.5 69.0 \n", + " 24 Rio de Janeiro 85.1 77.2 \n", + " 25 São Paulo 60.7 50.2 \n", + " 26 Paraná 72.3 54.2 \n", + " 27 Santa Catarina 75.8 65.3 \n", + " 28 Rio Grande do Sul 73.6 66.1 \n", + " 29 Mato Grosso do Sul 86.0 81.2 \n", + " 30 Mato Grosso 76.3 66.2 \n", + " 31 Goiás 76.8 75.7 \n", + " 32 Distrito Federal 74.6 70.6 \n", + " 33 NaN NaN NaN \n", + " 34 NaN NaN NaN \n", + " \n", + " Distorção Idade-Série.2 \n", + " 0 65.3 \n", + " 1 75.7 \n", + " 2 77.9 \n", + " 3 58.4 \n", + " 4 62.6 \n", + " 5 73.6 \n", + " 6 76.2 \n", + " 7 60.5 \n", + " 8 75.5 \n", + " 9 76.9 \n", + " 10 77.7 \n", + " 11 69.4 \n", + " 12 75.9 \n", + " 13 76.2 \n", + " 14 80.5 \n", + " 15 83.7 \n", + " 16 78.0 \n", + " 17 88.0 \n", + " 18 81.3 \n", + " 19 88.3 \n", + " 20 85.7 \n", + " 21 67.1 \n", + " 22 69.1 \n", + " 23 69.1 \n", + " 24 86.7 \n", + " 25 51.5 \n", + " 26 59.5 \n", + " 27 71.9 \n", + " 28 60.4 \n", + " 29 75.4 \n", + " 30 78.1 \n", + " 31 75.5 \n", + " 32 69.6 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2008': Unnamed: 0 Unnamed: 1 \\\n", + " 0 NaN 0 \n", + " 1 NaN 1 \n", + " 2 NaN 2 \n", + " 3 NaN 3 \n", + " 4 NaN 4 \n", + " 5 NaN 5 \n", + " 6 NaN 11 \n", + " 7 NaN 12 \n", + " 8 NaN 13 \n", + " 9 NaN 14 \n", + " 10 NaN 15 \n", + " 11 NaN 16 \n", + " 12 NaN 17 \n", + " 13 NaN 21 \n", + " 14 NaN 22 \n", + " 15 NaN 23 \n", + " 16 NaN 24 \n", + " 17 NaN 25 \n", + " 18 NaN 26 \n", + " 19 NaN 27 \n", + " 20 NaN 28 \n", + " 21 NaN 29 \n", + " 22 NaN 31 \n", + " 23 NaN 32 \n", + " 24 NaN 33 \n", + " 25 NaN 35 \n", + " 26 NaN 41 \n", + " 27 NaN 42 \n", + " 28 NaN 43 \n", + " 29 NaN 50 \n", + " 30 NaN 51 \n", + " 31 NaN 52 \n", + " 32 NaN 53 \n", + " 33 NaN NaN \n", + " 34 NaN Notas: Foram consideradas a rede total (escola... \n", + " \n", + " Unnamed: 2 Distorção Idade-Série Distorção Idade-Série.1 \\\n", + " 0 Brasil 66.5 54.5 \n", + " 1 Norte 61.2 44.8 \n", + " 2 Nordeste 60.7 45.7 \n", + " 3 Sudeste 65.7 53.5 \n", + " 4 Sul 73.5 63.2 \n", + " 5 Centro-Oeste 72.3 63.6 \n", + " 6 Rondônia 55.1 35.9 \n", + " 7 Acre 43.8 29.7 \n", + " 8 Amazonas 58.0 57.0 \n", + " 9 Roraima 44.2 28.4 \n", + " 10 Pará 65.1 48.3 \n", + " 11 Amapá 57.0 54.4 \n", + " 12 Tocantins 67.1 46.3 \n", + " 13 Maranhão 62.8 44.3 \n", + " 14 Piauí 66.3 57.9 \n", + " 15 Ceará 55.9 38.6 \n", + " 16 Rio Grande do Norte 47.1 45.2 \n", + " 17 Paraíba 54.0 48.1 \n", + " 18 Pernambuco 73.5 58.6 \n", + " 19 Alagoas 49.0 46.1 \n", + " 20 Sergipe 68.5 58.9 \n", + " 21 Bahia 60.5 44.4 \n", + " 22 Minas Gerais 73.1 61.8 \n", + " 23 Espírito Santo 62.9 61.2 \n", + " 24 Rio de Janeiro 82.7 72.7 \n", + " 25 São Paulo 57.5 48.2 \n", + " 26 Paraná 78.0 60.6 \n", + " 27 Santa Catarina 69.5 64.5 \n", + " 28 Rio Grande do Sul 70.1 65.0 \n", + " 29 Mato Grosso do Sul 84.6 75.7 \n", + " 30 Mato Grosso 72.6 66.2 \n", + " 31 Goiás 68.0 62.1 \n", + " 32 Distrito Federal 62.0 60.0 \n", + " 33 NaN NaN NaN \n", + " 34 NaN NaN NaN \n", + " \n", + " Distorção Idade-Série.2 \n", + " 0 57.3 \n", + " 1 50.7 \n", + " 2 49.4 \n", + " 3 56.6 \n", + " 4 65.0 \n", + " 5 60.5 \n", + " 6 48.8 \n", + " 7 47.2 \n", + " 8 62.2 \n", + " 9 41.2 \n", + " 10 48.7 \n", + " 11 60.0 \n", + " 12 48.2 \n", + " 13 45.3 \n", + " 14 51.0 \n", + " 15 48.7 \n", + " 16 44.2 \n", + " 17 52.3 \n", + " 18 65.1 \n", + " 19 61.1 \n", + " 20 65.7 \n", + " 21 41.9 \n", + " 22 58.6 \n", + " 23 73.5 \n", + " 24 80.2 \n", + " 25 51.5 \n", + " 26 59.6 \n", + " 27 72.5 \n", + " 28 64.0 \n", + " 29 80.0 \n", + " 30 72.7 \n", + " 31 55.8 \n", + " 32 60.7 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2009': Unnamed: 0 Unnamed: 1 \\\n", + " 0 NaN 0 \n", + " 1 NaN 1 \n", + " 2 NaN 2 \n", + " 3 NaN 3 \n", + " 4 NaN 4 \n", + " 5 NaN 5 \n", + " 6 NaN 11 \n", + " 7 NaN 12 \n", + " 8 NaN 13 \n", + " 9 NaN 14 \n", + " 10 NaN 15 \n", + " 11 NaN 16 \n", + " 12 NaN 17 \n", + " 13 NaN 21 \n", + " 14 NaN 22 \n", + " 15 NaN 23 \n", + " 16 NaN 24 \n", + " 17 NaN 25 \n", + " 18 NaN 26 \n", + " 19 NaN 27 \n", + " 20 NaN 28 \n", + " 21 NaN 29 \n", + " 22 NaN 31 \n", + " 23 NaN 32 \n", + " 24 NaN 33 \n", + " 25 NaN 35 \n", + " 26 NaN 41 \n", + " 27 NaN 42 \n", + " 28 NaN 43 \n", + " 29 NaN 50 \n", + " 30 NaN 51 \n", + " 31 NaN 52 \n", + " 32 NaN 53 \n", + " 33 NaN NaN \n", + " 34 NaN Notas: Foram consideradas a rede total (escola... \n", + " \n", + " Unnamed: 2 Distorção Idade-Série Distorção Idade-Série.1 \\\n", + " 0 Brasil 68.4 54.8 \n", + " 1 Norte 69.8 51.0 \n", + " 2 Nordeste 66.9 50.7 \n", + " 3 Sudeste 65.6 52.1 \n", + " 4 Sul 75.8 63.8 \n", + " 5 Centro-Oeste 73.1 65.6 \n", + " 6 Rondônia 64.2 47.3 \n", + " 7 Acre 51.6 37.8 \n", + " 8 Amazonas 70.6 56.7 \n", + " 9 Roraima 50.6 51.7 \n", + " 10 Pará 74.2 54.0 \n", + " 11 Amapá 64.5 49.2 \n", + " 12 Tocantins 72.8 50.5 \n", + " 13 Maranhão 64.4 48.8 \n", + " 14 Piauí 70.6 47.2 \n", + " 15 Ceará 64.3 44.5 \n", + " 16 Rio Grande do Norte 53.4 57.9 \n", + " 17 Paraíba 70.4 47.9 \n", + " 18 Pernambuco 78.3 64.5 \n", + " 19 Alagoas 54.1 58.9 \n", + " 20 Sergipe 78.2 61.1 \n", + " 21 Bahia 65.5 50.2 \n", + " 22 Minas Gerais 75.4 64.4 \n", + " 23 Espírito Santo 69.9 60.2 \n", + " 24 Rio de Janeiro 84.6 74.3 \n", + " 25 São Paulo 57.0 47.3 \n", + " 26 Paraná 80.6 61.1 \n", + " 27 Santa Catarina 57.4 61.8 \n", + " 28 Rio Grande do Sul 75.0 67.9 \n", + " 29 Mato Grosso do Sul 84.1 78.9 \n", + " 30 Mato Grosso 73.2 69.7 \n", + " 31 Goiás 65.7 61.2 \n", + " 32 Distrito Federal 66.4 64.6 \n", + " 33 NaN NaN NaN \n", + " 34 NaN NaN NaN \n", + " \n", + " Distorção Idade-Série.2 \n", + " 0 56.0 \n", + " 1 57.5 \n", + " 2 56.6 \n", + " 3 52.1 \n", + " 4 62.1 \n", + " 5 62.2 \n", + " 6 45.1 \n", + " 7 43.4 \n", + " 8 61.4 \n", + " 9 21.4 \n", + " 10 62.1 \n", + " 11 54.7 \n", + " 12 55.2 \n", + " 13 48.2 \n", + " 14 61.4 \n", + " 15 52.6 \n", + " 16 51.1 \n", + " 17 50.2 \n", + " 18 69.3 \n", + " 19 64.1 \n", + " 20 68.9 \n", + " 21 54.4 \n", + " 22 59.9 \n", + " 23 69.9 \n", + " 24 74.8 \n", + " 25 46.0 \n", + " 26 57.4 \n", + " 27 57.4 \n", + " 28 70.3 \n", + " 29 80.6 \n", + " 30 70.9 \n", + " 31 56.2 \n", + " 32 67.5 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2010': Unnamed: 0 Unnamed: 1 \\\n", + " 0 NaN 0 \n", + " 1 NaN 1 \n", + " 2 NaN 2 \n", + " 3 NaN 3 \n", + " 4 NaN 4 \n", + " 5 NaN 5 \n", + " 6 NaN 11 \n", + " 7 NaN 12 \n", + " 8 NaN 13 \n", + " 9 NaN 14 \n", + " 10 NaN 15 \n", + " 11 NaN 16 \n", + " 12 NaN 17 \n", + " 13 NaN 21 \n", + " 14 NaN 22 \n", + " 15 NaN 23 \n", + " 16 NaN 24 \n", + " 17 NaN 25 \n", + " 18 NaN 26 \n", + " 19 NaN 27 \n", + " 20 NaN 28 \n", + " 21 NaN 29 \n", + " 22 NaN 31 \n", + " 23 NaN 32 \n", + " 24 NaN 33 \n", + " 25 NaN 35 \n", + " 26 NaN 41 \n", + " 27 NaN 42 \n", + " 28 NaN 43 \n", + " 29 NaN 50 \n", + " 30 NaN 51 \n", + " 31 NaN 52 \n", + " 32 NaN 53 \n", + " 33 NaN NaN \n", + " 34 NaN Notas: Foram consideradas a rede total (escola... \n", + " \n", + " Unnamed: 2 Distorção Idade-Série Distorção Idade-Série.1 \\\n", + " 0 Brasil 67.5 57.2 \n", + " 1 Norte 70.0 59.4 \n", + " 2 Nordeste 67.1 57.8 \n", + " 3 Sudeste 65.0 52.8 \n", + " 4 Sul 72.4 62.8 \n", + " 5 Centro-Oeste 68.6 67.2 \n", + " 6 Rondônia 67.5 60.7 \n", + " 7 Acre 57.2 49.4 \n", + " 8 Amazonas 70.7 64.2 \n", + " 9 Roraima 50.6 59.2 \n", + " 10 Pará 74.9 62.5 \n", + " 11 Amapá 66.7 54.7 \n", + " 12 Tocantins 68.6 57.5 \n", + " 13 Maranhão 65.2 55.5 \n", + " 14 Piauí 69.2 56.1 \n", + " 15 Ceará 64.2 50.7 \n", + " 16 Rio Grande do Norte 56.2 66.8 \n", + " 17 Paraíba 71.7 56.5 \n", + " 18 Pernambuco 74.9 65.6 \n", + " 19 Alagoas 57.6 60.2 \n", + " 20 Sergipe 78.2 72.2 \n", + " 21 Bahia 67.4 59.3 \n", + " 22 Minas Gerais 69.3 66.1 \n", + " 23 Espírito Santo 59.1 59.0 \n", + " 24 Rio de Janeiro 82.2 73.3 \n", + " 25 São Paulo 58.4 47.4 \n", + " 26 Paraná 76.0 59.0 \n", + " 27 Santa Catarina 54.1 62.1 \n", + " 28 Rio Grande do Sul 73.0 67.8 \n", + " 29 Mato Grosso do Sul 81.2 78.7 \n", + " 30 Mato Grosso 64.6 66.7 \n", + " 31 Goiás 62.2 66.2 \n", + " 32 Distrito Federal 62.7 61.7 \n", + " 33 NaN NaN NaN \n", + " 34 NaN NaN NaN \n", + " \n", + " Distorção Idade-Série.2 \n", + " 0 56.4 \n", + " 1 63.0 \n", + " 2 60.3 \n", + " 3 52.1 \n", + " 4 55.6 \n", + " 5 64.6 \n", + " 6 45.9 \n", + " 7 56.6 \n", + " 8 70.9 \n", + " 9 58.6 \n", + " 10 70.8 \n", + " 11 54.1 \n", + " 12 56.0 \n", + " 13 56.7 \n", + " 14 65.9 \n", + " 15 50.6 \n", + " 16 67.4 \n", + " 17 55.6 \n", + " 18 69.9 \n", + " 19 69.1 \n", + " 20 80.1 \n", + " 21 57.6 \n", + " 22 58.9 \n", + " 23 60.1 \n", + " 24 67.7 \n", + " 25 47.3 \n", + " 26 51.1 \n", + " 27 53.0 \n", + " 28 62.9 \n", + " 29 75.6 \n", + " 30 69.6 \n", + " 31 63.2 \n", + " 32 61.7 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2011': Unnamed: 0 Unnamed: 1 \\\n", + " 0 NaN 0 \n", + " 1 NaN 1 \n", + " 2 NaN 2 \n", + " 3 NaN 3 \n", + " 4 NaN 4 \n", + " 5 NaN 5 \n", + " 6 NaN 11 \n", + " 7 NaN 12 \n", + " 8 NaN 13 \n", + " 9 NaN 14 \n", + " 10 NaN 15 \n", + " 11 NaN 16 \n", + " 12 NaN 17 \n", + " 13 NaN 21 \n", + " 14 NaN 22 \n", + " 15 NaN 23 \n", + " 16 NaN 24 \n", + " 17 NaN 25 \n", + " 18 NaN 26 \n", + " 19 NaN 27 \n", + " 20 NaN 28 \n", + " 21 NaN 29 \n", + " 22 NaN 31 \n", + " 23 NaN 32 \n", + " 24 NaN 33 \n", + " 25 NaN 35 \n", + " 26 NaN 41 \n", + " 27 NaN 42 \n", + " 28 NaN 43 \n", + " 29 NaN 50 \n", + " 30 NaN 51 \n", + " 31 NaN 52 \n", + " 32 NaN 53 \n", + " 33 NaN NaN \n", + " 34 NaN Notas: Foram consideradas a rede total (escola... \n", + " \n", + " Unnamed: 2 Distorção Idade-Série Distorção Idade-Série.1 \\\n", + " 0 Brasil 66.5 58.5 \n", + " 1 Norte 69.1 63.2 \n", + " 2 Nordeste 66.9 61.9 \n", + " 3 Sudeste 64.7 53.6 \n", + " 4 Sul 69.1 60.6 \n", + " 5 Centro-Oeste 66.1 66.2 \n", + " 6 Rondônia 67.5 61.4 \n", + " 7 Acre 57.1 53.4 \n", + " 8 Amazonas 69.7 69.5 \n", + " 9 Roraima 49.4 65.6 \n", + " 10 Pará 73.4 66.5 \n", + " 11 Amapá 69.8 55.4 \n", + " 12 Tocantins 67.2 62.8 \n", + " 13 Maranhão 64.8 60.2 \n", + " 14 Piauí 67.1 61.0 \n", + " 15 Ceará 62.1 56.8 \n", + " 16 Rio Grande do Norte 57.6 68.9 \n", + " 17 Paraíba 71.2 60.8 \n", + " 18 Pernambuco 74.3 67.4 \n", + " 19 Alagoas 60.4 64.5 \n", + " 20 Sergipe 78.4 73.3 \n", + " 21 Bahia 67.7 61.6 \n", + " 22 Minas Gerais 65.1 65.3 \n", + " 23 Espírito Santo 54.4 58.0 \n", + " 24 Rio de Janeiro 79.6 72.8 \n", + " 25 São Paulo 60.4 47.5 \n", + " 26 Paraná 73.5 56.1 \n", + " 27 Santa Catarina 50.3 60.1 \n", + " 28 Rio Grande do Sul 69.8 66.4 \n", + " 29 Mato Grosso do Sul 78.4 79.3 \n", + " 30 Mato Grosso 58.8 62.5 \n", + " 31 Goiás 60.5 65.1 \n", + " 32 Distrito Federal 63.0 61.0 \n", + " 33 NaN NaN NaN \n", + " 34 NaN NaN NaN \n", + " \n", + " Distorção Idade-Série.2 \n", + " 0 56.1 \n", + " 1 62.9 \n", + " 2 59.9 \n", + " 3 52.5 \n", + " 4 54.3 \n", + " 5 62.5 \n", + " 6 51.0 \n", + " 7 51.2 \n", + " 8 68.9 \n", + " 9 48.1 \n", + " 10 69.1 \n", + " 11 57.7 \n", + " 12 62.9 \n", + " 13 54.6 \n", + " 14 63.0 \n", + " 15 57.7 \n", + " 16 68.8 \n", + " 17 50.5 \n", + " 18 65.9 \n", + " 19 62.8 \n", + " 20 73.5 \n", + " 21 57.1 \n", + " 22 59.8 \n", + " 23 59.1 \n", + " 24 66.3 \n", + " 25 47.4 \n", + " 26 50.7 \n", + " 27 51.3 \n", + " 28 61.2 \n", + " 29 68.9 \n", + " 30 64.6 \n", + " 31 63.8 \n", + " 32 57.2 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2012': Unnamed: 0 Unnamed: 1 \\\n", + " 0 NaN 0 \n", + " 1 NaN 1 \n", + " 2 NaN 2 \n", + " 3 NaN 3 \n", + " 4 NaN 4 \n", + " 5 NaN 5 \n", + " 6 NaN 11 \n", + " 7 NaN 12 \n", + " 8 NaN 13 \n", + " 9 NaN 14 \n", + " 10 NaN 15 \n", + " 11 NaN 16 \n", + " 12 NaN 17 \n", + " 13 NaN 21 \n", + " 14 NaN 22 \n", + " 15 NaN 23 \n", + " 16 NaN 24 \n", + " 17 NaN 25 \n", + " 18 NaN 26 \n", + " 19 NaN 27 \n", + " 20 NaN 28 \n", + " 21 NaN 29 \n", + " 22 NaN 31 \n", + " 23 NaN 32 \n", + " 24 NaN 33 \n", + " 25 NaN 35 \n", + " 26 NaN 41 \n", + " 27 NaN 42 \n", + " 28 NaN 43 \n", + " 29 NaN 50 \n", + " 30 NaN 51 \n", + " 31 NaN 52 \n", + " 32 NaN 53 \n", + " 33 NaN NaN \n", + " 34 NaN Notas: Foram consideradas a rede total (escola... \n", + " \n", + " Unnamed: 2 Distorção Idade-Série Distorção Idade-Série.1 \\\n", + " 0 Brasil 64.4 58.9 \n", + " 1 Norte 67.0 64.7 \n", + " 2 Nordeste 66.2 63.7 \n", + " 3 Sudeste 62.0 53.1 \n", + " 4 Sul 67.1 61.4 \n", + " 5 Centro-Oeste 62.5 64.3 \n", + " 6 Rondônia 67.0 60.8 \n", + " 7 Acre 54.5 58.5 \n", + " 8 Amazonas 66.0 72.1 \n", + " 9 Roraima 43.5 62.5 \n", + " 10 Pará 70.2 67.7 \n", + " 11 Amapá 68.3 61.9 \n", + " 12 Tocantins 68.3 62.9 \n", + " 13 Maranhão 62.6 60.3 \n", + " 14 Piauí 68.5 61.3 \n", + " 15 Ceará 57.8 59.4 \n", + " 16 Rio Grande do Norte 57.6 69.9 \n", + " 17 Paraíba 69.3 61.9 \n", + " 18 Pernambuco 74.2 69.6 \n", + " 19 Alagoas 61.7 66.2 \n", + " 20 Sergipe 79.5 75.4 \n", + " 21 Bahia 68.0 64.0 \n", + " 22 Minas Gerais 57.8 63.3 \n", + " 23 Espírito Santo 50.4 59.4 \n", + " 24 Rio de Janeiro 78.8 71.8 \n", + " 25 São Paulo 59.6 46.6 \n", + " 26 Paraná 73.8 56.9 \n", + " 27 Santa Catarina 41.5 59.9 \n", + " 28 Rio Grande do Sul 67.0 67.6 \n", + " 29 Mato Grosso do Sul 77.2 78.6 \n", + " 30 Mato Grosso 47.1 57.6 \n", + " 31 Goiás 56.6 63.0 \n", + " 32 Distrito Federal 62.6 59.9 \n", + " 33 NaN NaN NaN \n", + " 34 NaN NaN NaN \n", + " \n", + " Distorção Idade-Série.2 \n", + " 0 55.3 \n", + " 1 62.9 \n", + " 2 60.9 \n", + " 3 51.4 \n", + " 4 51.8 \n", + " 5 61.5 \n", + " 6 53.9 \n", + " 7 52.0 \n", + " 8 66.0 \n", + " 9 57.5 \n", + " 10 70.9 \n", + " 11 52.5 \n", + " 12 61.0 \n", + " 13 57.8 \n", + " 14 58.3 \n", + " 15 59.0 \n", + " 16 67.7 \n", + " 17 52.1 \n", + " 18 67.1 \n", + " 19 63.5 \n", + " 20 73.7 \n", + " 21 59.8 \n", + " 22 59.8 \n", + " 23 56.2 \n", + " 24 60.5 \n", + " 25 46.6 \n", + " 26 46.9 \n", + " 27 49.9 \n", + " 28 59.4 \n", + " 29 69.8 \n", + " 30 57.5 \n", + " 31 64.7 \n", + " 32 53.6 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2013': Unnamed: 0 Unnamed: 1 \\\n", + " 0 NaN 0 \n", + " 1 NaN 1 \n", + " 2 NaN 2 \n", + " 3 NaN 3 \n", + " 4 NaN 4 \n", + " 5 NaN 5 \n", + " 6 NaN 11 \n", + " 7 NaN 12 \n", + " 8 NaN 13 \n", + " 9 NaN 14 \n", + " 10 NaN 15 \n", + " 11 NaN 16 \n", + " 12 NaN 17 \n", + " 13 NaN 21 \n", + " 14 NaN 22 \n", + " 15 NaN 23 \n", + " 16 NaN 24 \n", + " 17 NaN 25 \n", + " 18 NaN 26 \n", + " 19 NaN 27 \n", + " 20 NaN 28 \n", + " 21 NaN 29 \n", + " 22 NaN 31 \n", + " 23 NaN 32 \n", + " 24 NaN 33 \n", + " 25 NaN 35 \n", + " 26 NaN 41 \n", + " 27 NaN 42 \n", + " 28 NaN 43 \n", + " 29 NaN 50 \n", + " 30 NaN 51 \n", + " 31 NaN 52 \n", + " 32 NaN 53 \n", + " 33 NaN NaN \n", + " 34 NaN Notas: Foram consideradas a rede total (escola... \n", + " \n", + " Unnamed: 2 Distorção Idade-Série Distorção Idade-Série.1 \\\n", + " 0 Brasil 61.8 59.3 \n", + " 1 Norte 65.1 65.2 \n", + " 2 Nordeste 63.8 66.2 \n", + " 3 Sudeste 59.5 52.2 \n", + " 4 Sul 63.0 63.8 \n", + " 5 Centro-Oeste 60.1 61.6 \n", + " 6 Rondônia 66.3 62.2 \n", + " 7 Acre 55.8 56.4 \n", + " 8 Amazonas 63.2 66.0 \n", + " 9 Roraima 38.4 58.2 \n", + " 10 Pará 69.1 69.9 \n", + " 11 Amapá 64.4 60.6 \n", + " 12 Tocantins 63.3 66.0 \n", + " 13 Maranhão 60.5 61.9 \n", + " 14 Piauí 66.0 66.3 \n", + " 15 Ceará 50.2 63.1 \n", + " 16 Rio Grande do Norte 56.4 72.8 \n", + " 17 Paraíba 68.0 67.2 \n", + " 18 Pernambuco 73.1 71.1 \n", + " 19 Alagoas 61.3 65.7 \n", + " 20 Sergipe 76.4 77.6 \n", + " 21 Bahia 66.8 65.8 \n", + " 22 Minas Gerais 52.4 60.5 \n", + " 23 Espírito Santo 47.8 61.8 \n", + " 24 Rio de Janeiro 77.1 74.3 \n", + " 25 São Paulo 58.4 44.8 \n", + " 26 Paraná 70.7 59.6 \n", + " 27 Santa Catarina 35.1 59.7 \n", + " 28 Rio Grande do Sul 62.8 70.3 \n", + " 29 Mato Grosso do Sul 76.4 75.2 \n", + " 30 Mato Grosso 41.9 47.7 \n", + " 31 Goiás 53.5 64.7 \n", + " 32 Distrito Federal 63.5 58.7 \n", + " 33 NaN NaN NaN \n", + " 34 NaN NaN NaN \n", + " \n", + " Distorção Idade-Série.2 \n", + " 0 55.4 \n", + " 1 62.0 \n", + " 2 61.9 \n", + " 3 51.0 \n", + " 4 52.9 \n", + " 5 61.4 \n", + " 6 54.1 \n", + " 7 48.6 \n", + " 8 63.9 \n", + " 9 60.3 \n", + " 10 70.6 \n", + " 11 54.4 \n", + " 12 60.4 \n", + " 13 57.8 \n", + " 14 63.2 \n", + " 15 60.9 \n", + " 16 65.5 \n", + " 17 56.9 \n", + " 18 71.0 \n", + " 19 55.5 \n", + " 20 72.9 \n", + " 21 60.0 \n", + " 22 61.1 \n", + " 23 51.7 \n", + " 24 63.1 \n", + " 25 46.1 \n", + " 26 48.2 \n", + " 27 51.8 \n", + " 28 59.4 \n", + " 29 67.8 \n", + " 30 60.5 \n", + " 31 65.1 \n", + " 32 53.9 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2014': Unnamed: 0 Unnamed: 1 \\\n", + " 0 NaN 0 \n", + " 1 NaN 1 \n", + " 2 NaN 2 \n", + " 3 NaN 3 \n", + " 4 NaN 4 \n", + " 5 NaN 5 \n", + " 6 NaN 11 \n", + " 7 NaN 12 \n", + " 8 NaN 13 \n", + " 9 NaN 14 \n", + " 10 NaN 15 \n", + " 11 NaN 16 \n", + " 12 NaN 17 \n", + " 13 NaN 21 \n", + " 14 NaN 22 \n", + " 15 NaN 23 \n", + " 16 NaN 24 \n", + " 17 NaN 25 \n", + " 18 NaN 26 \n", + " 19 NaN 27 \n", + " 20 NaN 28 \n", + " 21 NaN 29 \n", + " 22 NaN 31 \n", + " 23 NaN 32 \n", + " 24 NaN 33 \n", + " 25 NaN 35 \n", + " 26 NaN 41 \n", + " 27 NaN 42 \n", + " 28 NaN 43 \n", + " 29 NaN 50 \n", + " 30 NaN 51 \n", + " 31 NaN 52 \n", + " 32 NaN 53 \n", + " 33 NaN NaN \n", + " 34 NaN Notas: Foram consideradas a rede total (escola... \n", + " \n", + " Unnamed: 2 Distorção Idade-Série Distorção Idade-Série.1 \\\n", + " 0 Brasil 58.7 59.6 \n", + " 1 Norte 60.7 65.6 \n", + " 2 Nordeste 60.4 68.1 \n", + " 3 Sudeste 56.4 51.9 \n", + " 4 Sul 61.2 64.5 \n", + " 5 Centro-Oeste 56.0 58.6 \n", + " 6 Rondônia 57.7 63.7 \n", + " 7 Acre 53.6 55.5 \n", + " 8 Amazonas 61.6 67.2 \n", + " 9 Roraima 35.5 54.8 \n", + " 10 Pará 64.8 72.0 \n", + " 11 Amapá 60.4 60.3 \n", + " 12 Tocantins 56.9 65.2 \n", + " 13 Maranhão 59.0 63.6 \n", + " 14 Piauí 62.1 68.2 \n", + " 15 Ceará 42.5 63.9 \n", + " 16 Rio Grande do Norte 52.5 74.8 \n", + " 17 Paraíba 65.0 69.4 \n", + " 18 Pernambuco 71.2 72.7 \n", + " 19 Alagoas 60.1 69.4 \n", + " 20 Sergipe 71.9 81.3 \n", + " 21 Bahia 64.4 67.9 \n", + " 22 Minas Gerais 46.0 56.6 \n", + " 23 Espírito Santo 45.6 63.0 \n", + " 24 Rio de Janeiro 75.3 73.7 \n", + " 25 São Paulo 56.1 44.9 \n", + " 26 Paraná 73.2 61.2 \n", + " 27 Santa Catarina 30.0 57.5 \n", + " 28 Rio Grande do Sul 58.9 70.9 \n", + " 29 Mato Grosso do Sul 75.1 73.4 \n", + " 30 Mato Grosso 35.0 37.8 \n", + " 31 Goiás 46.7 62.0 \n", + " 32 Distrito Federal 62.9 61.1 \n", + " 33 NaN NaN NaN \n", + " 34 NaN NaN NaN \n", + " \n", + " Distorção Idade-Série.2 \n", + " 0 54.5 \n", + " 1 58.9 \n", + " 2 64.7 \n", + " 3 49.3 \n", + " 4 52.4 \n", + " 5 61.0 \n", + " 6 52.9 \n", + " 7 49.4 \n", + " 8 67.0 \n", + " 9 64.4 \n", + " 10 63.8 \n", + " 11 57.8 \n", + " 12 60.8 \n", + " 13 61.1 \n", + " 14 63.6 \n", + " 15 62.2 \n", + " 16 69.0 \n", + " 17 60.3 \n", + " 18 68.6 \n", + " 19 61.3 \n", + " 20 74.1 \n", + " 21 67.8 \n", + " 22 60.5 \n", + " 23 53.9 \n", + " 24 63.1 \n", + " 25 43.5 \n", + " 26 48.4 \n", + " 27 50.4 \n", + " 28 59.0 \n", + " 29 66.4 \n", + " 30 58.7 \n", + " 31 64.4 \n", + " 32 54.2 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2015': Unnamed: 0 Unnamed: 1 \\\n", + " 0 NaN 0 \n", + " 1 NaN 1 \n", + " 2 NaN 2 \n", + " 3 NaN 3 \n", + " 4 NaN 4 \n", + " 5 NaN 5 \n", + " 6 NaN 11 \n", + " 7 NaN 12 \n", + " 8 NaN 13 \n", + " 9 NaN 14 \n", + " 10 NaN 15 \n", + " 11 NaN 16 \n", + " 12 NaN 17 \n", + " 13 NaN 21 \n", + " 14 NaN 22 \n", + " 15 NaN 23 \n", + " 16 NaN 24 \n", + " 17 NaN 25 \n", + " 18 NaN 26 \n", + " 19 NaN 27 \n", + " 20 NaN 28 \n", + " 21 NaN 29 \n", + " 22 NaN 31 \n", + " 23 NaN 32 \n", + " 24 NaN 33 \n", + " 25 NaN 35 \n", + " 26 NaN 41 \n", + " 27 NaN 42 \n", + " 28 NaN 43 \n", + " 29 NaN 50 \n", + " 30 NaN 51 \n", + " 31 NaN 52 \n", + " 32 NaN 53 \n", + " 33 NaN NaN \n", + " 34 NaN Notas: Foram consideradas a rede total (escola... \n", + " \n", + " Unnamed: 2 Distorção Idade-Série Distorção Idade-Série.1 \\\n", + " 0 Brasil 55.8 59.2 \n", + " 1 Norte 57.8 66.0 \n", + " 2 Nordeste 57.2 67.6 \n", + " 3 Sudeste 53.8 51.1 \n", + " 4 Sul 57.6 63.6 \n", + " 5 Centro-Oeste 53.3 56.2 \n", + " 6 Rondônia 53.0 62.4 \n", + " 7 Acre 50.5 54.1 \n", + " 8 Amazonas 59.2 65.1 \n", + " 9 Roraima 32.1 54.7 \n", + " 10 Pará 62.8 73.7 \n", + " 11 Amapá 55.7 61.7 \n", + " 12 Tocantins 53.1 64.9 \n", + " 13 Maranhão 55.3 63.7 \n", + " 14 Piauí 60.1 67.5 \n", + " 15 Ceará 36.3 60.4 \n", + " 16 Rio Grande do Norte 49.0 74.2 \n", + " 17 Paraíba 62.9 70.4 \n", + " 18 Pernambuco 69.3 73.1 \n", + " 19 Alagoas 58.1 69.9 \n", + " 20 Sergipe 68.2 81.0 \n", + " 21 Bahia 62.7 68.6 \n", + " 22 Minas Gerais 41.7 53.1 \n", + " 23 Espírito Santo 43.0 62.6 \n", + " 24 Rio de Janeiro 72.9 72.3 \n", + " 25 São Paulo 54.5 44.4 \n", + " 26 Paraná 69.7 61.2 \n", + " 27 Santa Catarina 26.5 54.1 \n", + " 28 Rio Grande do Sul 56.0 70.5 \n", + " 29 Mato Grosso do Sul 73.1 69.4 \n", + " 30 Mato Grosso 30.8 34.0 \n", + " 31 Goiás 42.7 60.6 \n", + " 32 Distrito Federal 62.1 59.7 \n", + " 33 NaN NaN NaN \n", + " 34 NaN NaN NaN \n", + " \n", + " Distorção Idade-Série.2 \n", + " 0 53.7 \n", + " 1 58.4 \n", + " 2 64.4 \n", + " 3 48.3 \n", + " 4 52.0 \n", + " 5 58.3 \n", + " 6 53.3 \n", + " 7 49.6 \n", + " 8 68.1 \n", + " 9 54.5 \n", + " 10 65.6 \n", + " 11 55.5 \n", + " 12 58.9 \n", + " 13 61.0 \n", + " 14 65.6 \n", + " 15 62.6 \n", + " 16 69.1 \n", + " 17 60.4 \n", + " 18 66.0 \n", + " 19 57.8 \n", + " 20 73.7 \n", + " 21 67.6 \n", + " 22 60.9 \n", + " 23 54.2 \n", + " 24 62.0 \n", + " 25 41.7 \n", + " 26 48.0 \n", + " 27 50.1 \n", + " 28 58.0 \n", + " 29 67.2 \n", + " 30 52.3 \n", + " 31 61.6 \n", + " 32 52.7 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2016': Unnamed: 0 Unnamed: 1 \\\n", + " 0 NaN 0 \n", + " 1 NaN 1 \n", + " 2 NaN 2 \n", + " 3 NaN 3 \n", + " 4 NaN 4 \n", + " 5 NaN 5 \n", + " 6 NaN 11 \n", + " 7 NaN 12 \n", + " 8 NaN 13 \n", + " 9 NaN 14 \n", + " 10 NaN 15 \n", + " 11 NaN 16 \n", + " 12 NaN 17 \n", + " 13 NaN 21 \n", + " 14 NaN 22 \n", + " 15 NaN 23 \n", + " 16 NaN 24 \n", + " 17 NaN 25 \n", + " 18 NaN 26 \n", + " 19 NaN 27 \n", + " 20 NaN 28 \n", + " 21 NaN 29 \n", + " 22 NaN 31 \n", + " 23 NaN 32 \n", + " 24 NaN 33 \n", + " 25 NaN 35 \n", + " 26 NaN 41 \n", + " 27 NaN 42 \n", + " 28 NaN 43 \n", + " 29 NaN 50 \n", + " 30 NaN 51 \n", + " 31 NaN 52 \n", + " 32 NaN 53 \n", + " 33 NaN NaN \n", + " 34 NaN Notas: Foram consideradas a rede total (escola... \n", + " \n", + " Unnamed: 2 Distorção Idade-Série Distorção Idade-Série.1 \\\n", + " 0 Brasil 53.5 58.2 \n", + " 1 Norte 55.7 65.6 \n", + " 2 Nordeste 54.3 66.9 \n", + " 3 Sudeste 51.4 49.7 \n", + " 4 Sul 56.9 61.2 \n", + " 5 Centro-Oeste 51.0 55.3 \n", + " 6 Rondônia 47.2 62.7 \n", + " 7 Acre 46.8 55.5 \n", + " 8 Amazonas 57.7 63.3 \n", + " 9 Roraima 28.9 52.9 \n", + " 10 Pará 61.3 73.2 \n", + " 11 Amapá 54.4 62.0 \n", + " 12 Tocantins 52.5 62.7 \n", + " 13 Maranhão 53.1 64.2 \n", + " 14 Piauí 57.3 67.5 \n", + " 15 Ceará 30.9 55.6 \n", + " 16 Rio Grande do Norte 45.4 72.9 \n", + " 17 Paraíba 60.3 71.4 \n", + " 18 Pernambuco 65.8 74.0 \n", + " 19 Alagoas 56.1 70.7 \n", + " 20 Sergipe 66.1 79.4 \n", + " 21 Bahia 61.4 69.9 \n", + " 22 Minas Gerais 39.3 50.9 \n", + " 23 Espírito Santo 40.7 59.8 \n", + " 24 Rio de Janeiro 70.1 70.2 \n", + " 25 São Paulo 51.9 43.3 \n", + " 26 Paraná 69.5 59.3 \n", + " 27 Santa Catarina 24.5 47.9 \n", + " 28 Rio Grande do Sul 54.9 68.4 \n", + " 29 Mato Grosso do Sul 71.9 67.3 \n", + " 30 Mato Grosso 30.0 31.1 \n", + " 31 Goiás 40.0 60.1 \n", + " 32 Distrito Federal 59.7 59.9 \n", + " 33 NaN NaN NaN \n", + " 34 NaN NaN NaN \n", + " \n", + " Distorção Idade-Série.2 \n", + " 0 53.9 \n", + " 1 60.4 \n", + " 2 64.6 \n", + " 3 47.8 \n", + " 4 53.6 \n", + " 5 57.3 \n", + " 6 54.4 \n", + " 7 51.1 \n", + " 8 67.3 \n", + " 9 51.1 \n", + " 10 69.7 \n", + " 11 55.5 \n", + " 12 60.9 \n", + " 13 58.7 \n", + " 14 63.5 \n", + " 15 64.1 \n", + " 16 68.3 \n", + " 17 65.5 \n", + " 18 65.4 \n", + " 19 64.6 \n", + " 20 72.0 \n", + " 21 68.0 \n", + " 22 59.8 \n", + " 23 56.2 \n", + " 24 58.3 \n", + " 25 41.2 \n", + " 26 49.1 \n", + " 27 50.7 \n", + " 28 61.0 \n", + " 29 68.0 \n", + " 30 49.8 \n", + " 31 61.6 \n", + " 32 50.8 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2017': Unnamed: 0 Unnamed: 1 \\\n", + " 0 NaN 0 \n", + " 1 NaN 1 \n", + " 2 NaN 2 \n", + " 3 NaN 3 \n", + " 4 NaN 4 \n", + " 5 NaN 5 \n", + " 6 NaN 11 \n", + " 7 NaN 12 \n", + " 8 NaN 13 \n", + " 9 NaN 14 \n", + " 10 NaN 15 \n", + " 11 NaN 16 \n", + " 12 NaN 17 \n", + " 13 NaN 21 \n", + " 14 NaN 22 \n", + " 15 NaN 23 \n", + " 16 NaN 24 \n", + " 17 NaN 25 \n", + " 18 NaN 26 \n", + " 19 NaN 27 \n", + " 20 NaN 28 \n", + " 21 NaN 29 \n", + " 22 NaN 31 \n", + " 23 NaN 32 \n", + " 24 NaN 33 \n", + " 25 NaN 35 \n", + " 26 NaN 41 \n", + " 27 NaN 42 \n", + " 28 NaN 43 \n", + " 29 NaN 50 \n", + " 30 NaN 51 \n", + " 31 NaN 52 \n", + " 32 NaN 53 \n", + " 33 NaN NaN \n", + " 34 NaN Notas: Foram consideradas a rede total (escola... \n", + " \n", + " Unnamed: 2 Distorção Idade-Série Distorção Idade-Série.1 \\\n", + " 0 Brasil 51.4 56.8 \n", + " 1 Norte 53.1 64.8 \n", + " 2 Nordeste 52.2 65.3 \n", + " 3 Sudeste 49.4 48.3 \n", + " 4 Sul 54.6 59.2 \n", + " 5 Centro-Oeste 48.2 52.5 \n", + " 6 Rondônia 42.7 60.5 \n", + " 7 Acre 45.1 54.0 \n", + " 8 Amazonas 54.5 62.9 \n", + " 9 Roraima 26.2 50.3 \n", + " 10 Pará 59.9 72.7 \n", + " 11 Amapá 53.8 60.4 \n", + " 12 Tocantins 44.1 61.6 \n", + " 13 Maranhão 50.5 63.3 \n", + " 14 Piauí 54.4 63.7 \n", + " 15 Ceará 28.4 50.8 \n", + " 16 Rio Grande do Norte 43.2 69.6 \n", + " 17 Paraíba 59.1 71.3 \n", + " 18 Pernambuco 62.6 73.2 \n", + " 19 Alagoas 55.1 69.8 \n", + " 20 Sergipe 62.3 78.4 \n", + " 21 Bahia 59.6 70.4 \n", + " 22 Minas Gerais 36.8 49.4 \n", + " 23 Espírito Santo 37.9 58.2 \n", + " 24 Rio de Janeiro 68.0 67.8 \n", + " 25 São Paulo 50.8 41.2 \n", + " 26 Paraná 66.0 58.0 \n", + " 27 Santa Catarina 23.0 44.4 \n", + " 28 Rio Grande do Sul 53.4 66.9 \n", + " 29 Mato Grosso do Sul 71.5 68.3 \n", + " 30 Mato Grosso 29.3 33.3 \n", + " 31 Goiás 37.3 54.6 \n", + " 32 Distrito Federal 56.8 56.1 \n", + " 33 NaN NaN NaN \n", + " 34 NaN NaN NaN \n", + " \n", + " Distorção Idade-Série.2 \n", + " 0 53.1 \n", + " 1 59.9 \n", + " 2 61.8 \n", + " 3 46.7 \n", + " 4 54.9 \n", + " 5 55.5 \n", + " 6 52.2 \n", + " 7 48.1 \n", + " 8 64.1 \n", + " 9 51.2 \n", + " 10 69.8 \n", + " 11 54.6 \n", + " 12 59.5 \n", + " 13 56.2 \n", + " 14 59.9 \n", + " 15 60.8 \n", + " 16 67.9 \n", + " 17 66.9 \n", + " 18 65.2 \n", + " 19 52.6 \n", + " 20 75.2 \n", + " 21 65.7 \n", + " 22 57.4 \n", + " 23 51.5 \n", + " 24 58.6 \n", + " 25 39.6 \n", + " 26 51.2 \n", + " 27 50.5 \n", + " 28 62.0 \n", + " 29 65.6 \n", + " 30 46.4 \n", + " 31 60.5 \n", + " 32 50.5 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2018': Unnamed: 0 Unnamed: 1 \\\n", + " 0 NaN 0 \n", + " 1 NaN 1 \n", + " 2 NaN 2 \n", + " 3 NaN 3 \n", + " 4 NaN 4 \n", + " 5 NaN 5 \n", + " 6 NaN 11 \n", + " 7 NaN 12 \n", + " 8 NaN 13 \n", + " 9 NaN 14 \n", + " 10 NaN 15 \n", + " 11 NaN 16 \n", + " 12 NaN 17 \n", + " 13 NaN 21 \n", + " 14 NaN 22 \n", + " 15 NaN 23 \n", + " 16 NaN 24 \n", + " 17 NaN 25 \n", + " 18 NaN 26 \n", + " 19 NaN 27 \n", + " 20 NaN 28 \n", + " 21 NaN 29 \n", + " 22 NaN 31 \n", + " 23 NaN 32 \n", + " 24 NaN 33 \n", + " 25 NaN 35 \n", + " 26 NaN 41 \n", + " 27 NaN 42 \n", + " 28 NaN 43 \n", + " 29 NaN 50 \n", + " 30 NaN 51 \n", + " 31 NaN 52 \n", + " 32 NaN 53 \n", + " 33 NaN NaN \n", + " 34 NaN Notas: Foram consideradas a rede total (escola... \n", + " \n", + " Unnamed: 2 Distorção Idade-Série Distorção Idade-Série.1 \\\n", + " 0 Brasil 48.4 55.0 \n", + " 1 Norte 49.9 62.6 \n", + " 2 Nordeste 48.9 63.4 \n", + " 3 Sudeste 46.6 46.8 \n", + " 4 Sul 52.5 57.0 \n", + " 5 Centro-Oeste 44.1 49.8 \n", + " 6 Rondônia 36.6 58.4 \n", + " 7 Acre 41.4 51.5 \n", + " 8 Amazonas 51.6 60.7 \n", + " 9 Roraima 25.2 45.0 \n", + " 10 Pará 57.7 70.7 \n", + " 11 Amapá 51.3 60.2 \n", + " 12 Tocantins 38.7 57.7 \n", + " 13 Maranhão 47.7 61.2 \n", + " 14 Piauí 50.9 62.2 \n", + " 15 Ceará 24.6 46.0 \n", + " 16 Rio Grande do Norte 41.0 67.5 \n", + " 17 Paraíba 57.0 70.7 \n", + " 18 Pernambuco 57.0 70.8 \n", + " 19 Alagoas 50.1 68.2 \n", + " 20 Sergipe 60.8 76.4 \n", + " 21 Bahia 56.8 69.9 \n", + " 22 Minas Gerais 34.0 48.1 \n", + " 23 Espírito Santo 34.5 55.4 \n", + " 24 Rio de Janeiro 64.7 66.6 \n", + " 25 São Paulo 48.3 38.8 \n", + " 26 Paraná 63.0 55.2 \n", + " 27 Santa Catarina 21.7 41.4 \n", + " 28 Rio Grande do Sul 51.9 65.4 \n", + " 29 Mato Grosso do Sul 67.4 67.6 \n", + " 30 Mato Grosso 27.9 34.6 \n", + " 31 Goiás 32.9 50.0 \n", + " 32 Distrito Federal 54.3 53.8 \n", + " 33 NaN NaN NaN \n", + " 34 NaN NaN NaN \n", + " \n", + " Distorção Idade-Série.2 \n", + " 0 53.2 \n", + " 1 61.0 \n", + " 2 61.2 \n", + " 3 47.0 \n", + " 4 54.1 \n", + " 5 53.2 \n", + " 6 51.2 \n", + " 7 48.4 \n", + " 8 61.4 \n", + " 9 52.5 \n", + " 10 70.6 \n", + " 11 56.1 \n", + " 12 58.8 \n", + " 13 56.3 \n", + " 14 55.7 \n", + " 15 57.4 \n", + " 16 67.7 \n", + " 17 66.1 \n", + " 18 63.2 \n", + " 19 60.0 \n", + " 20 75.8 \n", + " 21 63.9 \n", + " 22 55.4 \n", + " 23 52.4 \n", + " 24 60.3 \n", + " 25 38.8 \n", + " 26 49.9 \n", + " 27 47.4 \n", + " 28 63.0 \n", + " 29 62.6 \n", + " 30 43.8 \n", + " 31 58.2 \n", + " 32 47.6 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2019': Unnamed: 0 Unnamed: 1 \\\n", + " 0 NaN 0 \n", + " 1 NaN 1 \n", + " 2 NaN 2 \n", + " 3 NaN 3 \n", + " 4 NaN 4 \n", + " 5 NaN 5 \n", + " 6 NaN 11 \n", + " 7 NaN 12 \n", + " 8 NaN 13 \n", + " 9 NaN 14 \n", + " 10 NaN 15 \n", + " 11 NaN 16 \n", + " 12 NaN 17 \n", + " 13 NaN 21 \n", + " 14 NaN 22 \n", + " 15 NaN 23 \n", + " 16 NaN 24 \n", + " 17 NaN 25 \n", + " 18 NaN 26 \n", + " 19 NaN 27 \n", + " 20 NaN 28 \n", + " 21 NaN 29 \n", + " 22 NaN 31 \n", + " 23 NaN 32 \n", + " 24 NaN 33 \n", + " 25 NaN 35 \n", + " 26 NaN 41 \n", + " 27 NaN 42 \n", + " 28 NaN 43 \n", + " 29 NaN 50 \n", + " 30 NaN 51 \n", + " 31 NaN 52 \n", + " 32 NaN 53 \n", + " 33 NaN NaN \n", + " 34 NaN Notas: Foram consideradas a rede total (escola... \n", + " \n", + " Unnamed: 2 Distorção Idade-Série Distorção Idade-Série.1 \\\n", + " 0 Brasil 44.9 53.3 \n", + " 1 Norte 46.8 60.9 \n", + " 2 Nordeste 45.1 61.3 \n", + " 3 Sudeste 42.6 45.2 \n", + " 4 Sul 50.1 55.0 \n", + " 5 Centro-Oeste 41.1 48.3 \n", + " 6 Rondônia 30.9 52.9 \n", + " 7 Acre 36.9 49.6 \n", + " 8 Amazonas 49.0 59.5 \n", + " 9 Roraima 24.8 43.4 \n", + " 10 Pará 55.1 69.7 \n", + " 11 Amapá 46.4 59.8 \n", + " 12 Tocantins 35.5 55.8 \n", + " 13 Maranhão 44.7 59.9 \n", + " 14 Piauí 45.6 62.2 \n", + " 15 Ceará 21.6 40.5 \n", + " 16 Rio Grande do Norte 37.6 64.8 \n", + " 17 Paraíba 53.8 70.6 \n", + " 18 Pernambuco 51.2 68.4 \n", + " 19 Alagoas 45.0 65.0 \n", + " 20 Sergipe 57.4 75.1 \n", + " 21 Bahia 53.5 69.5 \n", + " 22 Minas Gerais 30.7 45.6 \n", + " 23 Espírito Santo 30.8 53.4 \n", + " 24 Rio de Janeiro 60.4 65.9 \n", + " 25 São Paulo 43.9 37.5 \n", + " 26 Paraná 61.6 51.5 \n", + " 27 Santa Catarina 20.0 38.7 \n", + " 28 Rio Grande do Sul 49.1 64.2 \n", + " 29 Mato Grosso do Sul 65.0 66.2 \n", + " 30 Mato Grosso 27.5 33.9 \n", + " 31 Goiás 30.2 47.7 \n", + " 32 Distrito Federal 44.8 50.5 \n", + " 33 NaN NaN NaN \n", + " 34 NaN NaN NaN \n", + " \n", + " Distorção Idade-Série.2 \n", + " 0 51.1 \n", + " 1 59.3 \n", + " 2 59.4 \n", + " 3 44.7 \n", + " 4 50.9 \n", + " 5 51.4 \n", + " 6 48.3 \n", + " 7 46.7 \n", + " 8 62.3 \n", + " 9 47.7 \n", + " 10 68.5 \n", + " 11 51.7 \n", + " 12 56.8 \n", + " 13 54.8 \n", + " 14 55.8 \n", + " 15 52.0 \n", + " 16 66.1 \n", + " 17 64.5 \n", + " 18 65.5 \n", + " 19 59.3 \n", + " 20 74.6 \n", + " 21 63.1 \n", + " 22 50.7 \n", + " 23 50.2 \n", + " 24 59.5 \n", + " 25 36.9 \n", + " 26 45.2 \n", + " 27 43.0 \n", + " 28 59.4 \n", + " 29 59.2 \n", + " 30 43.9 \n", + " 31 56.0 \n", + " 32 45.1 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2020': Unnamed: 0 Unnamed: 1 \\\n", + " 0 NaN 0 \n", + " 1 NaN 1 \n", + " 2 NaN 2 \n", + " 3 NaN 3 \n", + " 4 NaN 4 \n", + " 5 NaN 5 \n", + " 6 NaN 11 \n", + " 7 NaN 12 \n", + " 8 NaN 13 \n", + " 9 NaN 14 \n", + " 10 NaN 15 \n", + " 11 NaN 16 \n", + " 12 NaN 17 \n", + " 13 NaN 21 \n", + " 14 NaN 22 \n", + " 15 NaN 23 \n", + " 16 NaN 24 \n", + " 17 NaN 25 \n", + " 18 NaN 26 \n", + " 19 NaN 27 \n", + " 20 NaN 28 \n", + " 21 NaN 29 \n", + " 22 NaN 31 \n", + " 23 NaN 32 \n", + " 24 NaN 33 \n", + " 25 NaN 35 \n", + " 26 NaN 41 \n", + " 27 NaN 42 \n", + " 28 NaN 43 \n", + " 29 NaN 50 \n", + " 30 NaN 51 \n", + " 31 NaN 52 \n", + " 32 NaN 53 \n", + " 33 NaN NaN \n", + " 34 NaN Notas: Foram consideradas a rede total (escola... \n", + " \n", + " Unnamed: 2 Distorção Idade-Série Distorção Idade-Série.1 \\\n", + " 0 Brasil 41.7 51.6 \n", + " 1 Norte 44.0 58.8 \n", + " 2 Nordeste 40.9 59.3 \n", + " 3 Sudeste 39.3 43.8 \n", + " 4 Sul 48.2 53.7 \n", + " 5 Centro-Oeste 38.1 45.4 \n", + " 6 Rondônia 29.2 47.8 \n", + " 7 Acre 34.9 47.4 \n", + " 8 Amazonas 45.9 57.8 \n", + " 9 Roraima 25.2 37.0 \n", + " 10 Pará 52.0 68.6 \n", + " 11 Amapá 41.1 59.7 \n", + " 12 Tocantins 32.2 52.9 \n", + " 13 Maranhão 41.2 58.6 \n", + " 14 Piauí 39.8 58.2 \n", + " 15 Ceará 18.4 37.1 \n", + " 16 Rio Grande do Norte 33.4 62.5 \n", + " 17 Paraíba 50.3 68.4 \n", + " 18 Pernambuco 43.5 65.2 \n", + " 19 Alagoas 39.7 61.2 \n", + " 20 Sergipe 53.9 74.8 \n", + " 21 Bahia 50.6 68.8 \n", + " 22 Minas Gerais 28.2 44.7 \n", + " 23 Espírito Santo 27.9 51.2 \n", + " 24 Rio de Janeiro 55.4 64.5 \n", + " 25 São Paulo 40.7 35.4 \n", + " 26 Paraná 61.5 49.7 \n", + " 27 Santa Catarina 18.7 37.4 \n", + " 28 Rio Grande do Sul 46.0 63.8 \n", + " 29 Mato Grosso do Sul 61.7 65.3 \n", + " 30 Mato Grosso 24.5 35.0 \n", + " 31 Goiás 29.2 42.5 \n", + " 32 Distrito Federal 39.9 49.1 \n", + " 33 NaN NaN NaN \n", + " 34 NaN NaN NaN \n", + " \n", + " Distorção Idade-Série.2 \n", + " 0 50.3 \n", + " 1 58.5 \n", + " 2 58.5 \n", + " 3 44.2 \n", + " 4 48.8 \n", + " 5 49.4 \n", + " 6 49.1 \n", + " 7 46.7 \n", + " 8 58.6 \n", + " 9 48.3 \n", + " 10 67.6 \n", + " 11 52.2 \n", + " 12 54.8 \n", + " 13 52.4 \n", + " 14 55.8 \n", + " 15 49.2 \n", + " 16 62.7 \n", + " 17 62.1 \n", + " 18 63.7 \n", + " 19 58.8 \n", + " 20 71.3 \n", + " 21 64.9 \n", + " 22 49.6 \n", + " 23 49.4 \n", + " 24 60.4 \n", + " 25 35.7 \n", + " 26 44.3 \n", + " 27 40.0 \n", + " 28 58.0 \n", + " 29 59.3 \n", + " 30 42.7 \n", + " 31 51.9 \n", + " 32 44.3 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2021': Unnamed: 0 Unnamed: 1 \\\n", + " 0 NaN 0 \n", + " 1 NaN 1 \n", + " 2 NaN 2 \n", + " 3 NaN 3 \n", + " 4 NaN 4 \n", + " 5 NaN 5 \n", + " 6 NaN 11 \n", + " 7 NaN 12 \n", + " 8 NaN 13 \n", + " 9 NaN 14 \n", + " 10 NaN 15 \n", + " 11 NaN 16 \n", + " 12 NaN 17 \n", + " 13 NaN 21 \n", + " 14 NaN 22 \n", + " 15 NaN 23 \n", + " 16 NaN 24 \n", + " 17 NaN 25 \n", + " 18 NaN 26 \n", + " 19 NaN 27 \n", + " 20 NaN 28 \n", + " 21 NaN 29 \n", + " 22 NaN 31 \n", + " 23 NaN 32 \n", + " 24 NaN 33 \n", + " 25 NaN 35 \n", + " 26 NaN 41 \n", + " 27 NaN 42 \n", + " 28 NaN 43 \n", + " 29 NaN 50 \n", + " 30 NaN 51 \n", + " 31 NaN 52 \n", + " 32 NaN 53 \n", + " 33 NaN NaN \n", + " 34 NaN Notas: Foram consideradas a rede total (escola... \n", + " \n", + " Unnamed: 2 Distorção Idade-Série Distorção Idade-Série.1 \\\n", + " 0 Brasil 36.6 49.5 \n", + " 1 Norte 36.8 57.7 \n", + " 2 Nordeste 34.2 56.9 \n", + " 3 Sudeste 36.2 41.1 \n", + " 4 Sul 43.1 51.1 \n", + " 5 Centro-Oeste 33.6 43.3 \n", + " 6 Rondônia 23.4 43.6 \n", + " 7 Acre 27.9 46.2 \n", + " 8 Amazonas 39.8 56.7 \n", + " 9 Roraima 20.5 35.8 \n", + " 10 Pará 43.4 68.1 \n", + " 11 Amapá 34.0 58.8 \n", + " 12 Tocantins 27.0 48.7 \n", + " 13 Maranhão 35.3 56.5 \n", + " 14 Piauí 33.2 56.3 \n", + " 15 Ceará 14.6 33.3 \n", + " 16 Rio Grande do Norte 23.6 60.1 \n", + " 17 Paraíba 42.4 65.7 \n", + " 18 Pernambuco 36.4 60.8 \n", + " 19 Alagoas 32.2 57.4 \n", + " 20 Sergipe 44.5 72.2 \n", + " 21 Bahia 42.9 66.6 \n", + " 22 Minas Gerais 25.0 40.4 \n", + " 23 Espírito Santo 20.4 47.6 \n", + " 24 Rio de Janeiro 49.3 63.4 \n", + " 25 São Paulo 38.8 32.6 \n", + " 26 Paraná 60.2 46.1 \n", + " 27 Santa Catarina 14.6 35.1 \n", + " 28 Rio Grande do Sul 37.6 61.6 \n", + " 29 Mato Grosso do Sul 56.0 63.4 \n", + " 30 Mato Grosso 21.1 32.3 \n", + " 31 Goiás 25.2 39.8 \n", + " 32 Distrito Federal 36.0 48.9 \n", + " 33 NaN NaN NaN \n", + " 34 NaN NaN NaN \n", + " \n", + " Distorção Idade-Série.2 \n", + " 0 48.3 \n", + " 1 57.5 \n", + " 2 57.8 \n", + " 3 41.8 \n", + " 4 44.9 \n", + " 5 46.1 \n", + " 6 48.7 \n", + " 7 44.4 \n", + " 8 55.9 \n", + " 9 43.7 \n", + " 10 66.7 \n", + " 11 54.5 \n", + " 12 52.9 \n", + " 13 50.8 \n", + " 14 55.3 \n", + " 15 44.4 \n", + " 16 59.9 \n", + " 17 61.8 \n", + " 18 61.3 \n", + " 19 58.9 \n", + " 20 68.7 \n", + " 21 68.6 \n", + " 22 45.1 \n", + " 23 47.3 \n", + " 24 57.8 \n", + " 25 34.9 \n", + " 26 40.6 \n", + " 27 37.1 \n", + " 28 53.2 \n", + " 29 57.9 \n", + " 30 40.7 \n", + " 31 46.5 \n", + " 32 43.6 \n", + " 33 NaN \n", + " 34 NaN }" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dfs" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sheet: 2007\n", + "Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Distorção Idade-Série',\n", + " 'Distorção Idade-Série.1', 'Distorção Idade-Série.2'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2008\n", + "Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Distorção Idade-Série',\n", + " 'Distorção Idade-Série.1', 'Distorção Idade-Série.2'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2009\n", + "Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Distorção Idade-Série',\n", + " 'Distorção Idade-Série.1', 'Distorção Idade-Série.2'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2010\n", + "Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Distorção Idade-Série',\n", + " 'Distorção Idade-Série.1', 'Distorção Idade-Série.2'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2011\n", + "Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Distorção Idade-Série',\n", + " 'Distorção Idade-Série.1', 'Distorção Idade-Série.2'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2012\n", + "Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Distorção Idade-Série',\n", + " 'Distorção Idade-Série.1', 'Distorção Idade-Série.2'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2013\n", + "Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Distorção Idade-Série',\n", + " 'Distorção Idade-Série.1', 'Distorção Idade-Série.2'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2014\n", + "Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Distorção Idade-Série',\n", + " 'Distorção Idade-Série.1', 'Distorção Idade-Série.2'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2015\n", + "Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Distorção Idade-Série',\n", + " 'Distorção Idade-Série.1', 'Distorção Idade-Série.2'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2016\n", + "Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Distorção Idade-Série',\n", + " 'Distorção Idade-Série.1', 'Distorção Idade-Série.2'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2017\n", + "Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Distorção Idade-Série',\n", + " 'Distorção Idade-Série.1', 'Distorção Idade-Série.2'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2018\n", + "Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Distorção Idade-Série',\n", + " 'Distorção Idade-Série.1', 'Distorção Idade-Série.2'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2019\n", + "Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Distorção Idade-Série',\n", + " 'Distorção Idade-Série.1', 'Distorção Idade-Série.2'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2020\n", + "Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Distorção Idade-Série',\n", + " 'Distorção Idade-Série.1', 'Distorção Idade-Série.2'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2021\n", + "Index(['Unnamed: 0', 'Unnamed: 1', 'Unnamed: 2', 'Distorção Idade-Série',\n", + " 'Distorção Idade-Série.1', 'Distorção Idade-Série.2'],\n", + " dtype='object')\n", + "\n" + ] + } + ], + "source": [ + "for sheet_name, df in dfs.items():\n", + " print(f\"Sheet: {sheet_name}\")\n", + " print(df.columns) # This will print the column names of each DataFrame\n", + " print() # Adds a blank line for readability\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "dataframes = {}\n", + "\n", + "for table_name, columns in dfs.items():\n", + " df = pd.DataFrame(columns) # Create DataFrame for each table\n", + " dataframes[table_name] = df # Store the DataFrame in a dictionary\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "RENAME_COLUMNS = {\n", + " 'Unnamed: 1':'id_uf',\n", + " 'Unnamed: 2':'nome',\n", + " 'Distorção Idade-Série': 'Ensino Fundamental – Anos Iniciais',\n", + " 'Distorção Idade-Série.1':'Ensino Fundamental – Anos Finais',\n", + " 'Distorção Idade-Série.2':'Ensino Médio Regular' \n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def drop_unused_columns(df: pd.DataFrame) -> pd.DataFrame:\n", + " cols_drop = [\n", + " col\n", + " for col in df.columns\n", + " if col.startswith(\"Unnamed\")\n", + " ]\n", + "\n", + " return df.drop(columns=cols_drop)\n", + "\n", + "dfs = {\n", + " name: drop_unused_columns(\n", + " df.rename(columns=RENAME_COLUMNS, errors=\"raise\")\n", + " )\n", + " for name, df in dfs.items()\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'2007': id_uf nome \\\n", + " 0 0 Brasil \n", + " 1 1 Norte \n", + " 2 2 Nordeste \n", + " 3 3 Sudeste \n", + " 4 4 Sul \n", + " 5 5 Centro-Oeste \n", + " 6 11 Rondônia \n", + " 7 12 Acre \n", + " 8 13 Amazonas \n", + " 9 14 Roraima \n", + " 10 15 Pará \n", + " 11 16 Amapá \n", + " 12 17 Tocantins \n", + " 13 21 Maranhão \n", + " 14 22 Piauí \n", + " 15 23 Ceará \n", + " 16 24 Rio Grande do Norte \n", + " 17 25 Paraíba \n", + " 18 26 Pernambuco \n", + " 19 27 Alagoas \n", + " 20 28 Sergipe \n", + " 21 29 Bahia \n", + " 22 31 Minas Gerais \n", + " 23 32 Espírito Santo \n", + " 24 33 Rio de Janeiro \n", + " 25 35 São Paulo \n", + " 26 41 Paraná \n", + " 27 42 Santa Catarina \n", + " 28 43 Rio Grande do Sul \n", + " 29 50 Mato Grosso do Sul \n", + " 30 51 Mato Grosso \n", + " 31 52 Goiás \n", + " 32 53 Distrito Federal \n", + " 33 NaN NaN \n", + " 34 Notas: Foram consideradas a rede total (escola... NaN \n", + " \n", + " Ensino Fundamental – Anos Iniciais Ensino Fundamental – Anos Finais \\\n", + " 0 72.2 60.6 \n", + " 1 76.1 69.7 \n", + " 2 74.4 64.7 \n", + " 3 69.3 56.5 \n", + " 4 73.3 59.6 \n", + " 5 78.7 73.6 \n", + " 6 72.8 65.8 \n", + " 7 67.2 60.0 \n", + " 8 76.3 75.7 \n", + " 9 71.0 69.5 \n", + " 10 78.2 68.4 \n", + " 11 76.4 81.0 \n", + " 12 75.4 70.7 \n", + " 13 74.2 61.2 \n", + " 14 83.0 69.3 \n", + " 15 67.8 56.9 \n", + " 16 66.4 74.0 \n", + " 17 73.3 71.6 \n", + " 18 78.6 64.5 \n", + " 19 72.0 79.2 \n", + " 20 85.0 85.4 \n", + " 21 76.7 66.5 \n", + " 22 79.0 69.1 \n", + " 23 67.5 69.0 \n", + " 24 85.1 77.2 \n", + " 25 60.7 50.2 \n", + " 26 72.3 54.2 \n", + " 27 75.8 65.3 \n", + " 28 73.6 66.1 \n", + " 29 86.0 81.2 \n", + " 30 76.3 66.2 \n", + " 31 76.8 75.7 \n", + " 32 74.6 70.6 \n", + " 33 NaN NaN \n", + " 34 NaN NaN \n", + " \n", + " Ensino Médio Regular \n", + " 0 65.3 \n", + " 1 75.7 \n", + " 2 77.9 \n", + " 3 58.4 \n", + " 4 62.6 \n", + " 5 73.6 \n", + " 6 76.2 \n", + " 7 60.5 \n", + " 8 75.5 \n", + " 9 76.9 \n", + " 10 77.7 \n", + " 11 69.4 \n", + " 12 75.9 \n", + " 13 76.2 \n", + " 14 80.5 \n", + " 15 83.7 \n", + " 16 78.0 \n", + " 17 88.0 \n", + " 18 81.3 \n", + " 19 88.3 \n", + " 20 85.7 \n", + " 21 67.1 \n", + " 22 69.1 \n", + " 23 69.1 \n", + " 24 86.7 \n", + " 25 51.5 \n", + " 26 59.5 \n", + " 27 71.9 \n", + " 28 60.4 \n", + " 29 75.4 \n", + " 30 78.1 \n", + " 31 75.5 \n", + " 32 69.6 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2008': id_uf nome \\\n", + " 0 0 Brasil \n", + " 1 1 Norte \n", + " 2 2 Nordeste \n", + " 3 3 Sudeste \n", + " 4 4 Sul \n", + " 5 5 Centro-Oeste \n", + " 6 11 Rondônia \n", + " 7 12 Acre \n", + " 8 13 Amazonas \n", + " 9 14 Roraima \n", + " 10 15 Pará \n", + " 11 16 Amapá \n", + " 12 17 Tocantins \n", + " 13 21 Maranhão \n", + " 14 22 Piauí \n", + " 15 23 Ceará \n", + " 16 24 Rio Grande do Norte \n", + " 17 25 Paraíba \n", + " 18 26 Pernambuco \n", + " 19 27 Alagoas \n", + " 20 28 Sergipe \n", + " 21 29 Bahia \n", + " 22 31 Minas Gerais \n", + " 23 32 Espírito Santo \n", + " 24 33 Rio de Janeiro \n", + " 25 35 São Paulo \n", + " 26 41 Paraná \n", + " 27 42 Santa Catarina \n", + " 28 43 Rio Grande do Sul \n", + " 29 50 Mato Grosso do Sul \n", + " 30 51 Mato Grosso \n", + " 31 52 Goiás \n", + " 32 53 Distrito Federal \n", + " 33 NaN NaN \n", + " 34 Notas: Foram consideradas a rede total (escola... NaN \n", + " \n", + " Ensino Fundamental – Anos Iniciais Ensino Fundamental – Anos Finais \\\n", + " 0 66.5 54.5 \n", + " 1 61.2 44.8 \n", + " 2 60.7 45.7 \n", + " 3 65.7 53.5 \n", + " 4 73.5 63.2 \n", + " 5 72.3 63.6 \n", + " 6 55.1 35.9 \n", + " 7 43.8 29.7 \n", + " 8 58.0 57.0 \n", + " 9 44.2 28.4 \n", + " 10 65.1 48.3 \n", + " 11 57.0 54.4 \n", + " 12 67.1 46.3 \n", + " 13 62.8 44.3 \n", + " 14 66.3 57.9 \n", + " 15 55.9 38.6 \n", + " 16 47.1 45.2 \n", + " 17 54.0 48.1 \n", + " 18 73.5 58.6 \n", + " 19 49.0 46.1 \n", + " 20 68.5 58.9 \n", + " 21 60.5 44.4 \n", + " 22 73.1 61.8 \n", + " 23 62.9 61.2 \n", + " 24 82.7 72.7 \n", + " 25 57.5 48.2 \n", + " 26 78.0 60.6 \n", + " 27 69.5 64.5 \n", + " 28 70.1 65.0 \n", + " 29 84.6 75.7 \n", + " 30 72.6 66.2 \n", + " 31 68.0 62.1 \n", + " 32 62.0 60.0 \n", + " 33 NaN NaN \n", + " 34 NaN NaN \n", + " \n", + " Ensino Médio Regular \n", + " 0 57.3 \n", + " 1 50.7 \n", + " 2 49.4 \n", + " 3 56.6 \n", + " 4 65.0 \n", + " 5 60.5 \n", + " 6 48.8 \n", + " 7 47.2 \n", + " 8 62.2 \n", + " 9 41.2 \n", + " 10 48.7 \n", + " 11 60.0 \n", + " 12 48.2 \n", + " 13 45.3 \n", + " 14 51.0 \n", + " 15 48.7 \n", + " 16 44.2 \n", + " 17 52.3 \n", + " 18 65.1 \n", + " 19 61.1 \n", + " 20 65.7 \n", + " 21 41.9 \n", + " 22 58.6 \n", + " 23 73.5 \n", + " 24 80.2 \n", + " 25 51.5 \n", + " 26 59.6 \n", + " 27 72.5 \n", + " 28 64.0 \n", + " 29 80.0 \n", + " 30 72.7 \n", + " 31 55.8 \n", + " 32 60.7 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2009': id_uf nome \\\n", + " 0 0 Brasil \n", + " 1 1 Norte \n", + " 2 2 Nordeste \n", + " 3 3 Sudeste \n", + " 4 4 Sul \n", + " 5 5 Centro-Oeste \n", + " 6 11 Rondônia \n", + " 7 12 Acre \n", + " 8 13 Amazonas \n", + " 9 14 Roraima \n", + " 10 15 Pará \n", + " 11 16 Amapá \n", + " 12 17 Tocantins \n", + " 13 21 Maranhão \n", + " 14 22 Piauí \n", + " 15 23 Ceará \n", + " 16 24 Rio Grande do Norte \n", + " 17 25 Paraíba \n", + " 18 26 Pernambuco \n", + " 19 27 Alagoas \n", + " 20 28 Sergipe \n", + " 21 29 Bahia \n", + " 22 31 Minas Gerais \n", + " 23 32 Espírito Santo \n", + " 24 33 Rio de Janeiro \n", + " 25 35 São Paulo \n", + " 26 41 Paraná \n", + " 27 42 Santa Catarina \n", + " 28 43 Rio Grande do Sul \n", + " 29 50 Mato Grosso do Sul \n", + " 30 51 Mato Grosso \n", + " 31 52 Goiás \n", + " 32 53 Distrito Federal \n", + " 33 NaN NaN \n", + " 34 Notas: Foram consideradas a rede total (escola... NaN \n", + " \n", + " Ensino Fundamental – Anos Iniciais Ensino Fundamental – Anos Finais \\\n", + " 0 68.4 54.8 \n", + " 1 69.8 51.0 \n", + " 2 66.9 50.7 \n", + " 3 65.6 52.1 \n", + " 4 75.8 63.8 \n", + " 5 73.1 65.6 \n", + " 6 64.2 47.3 \n", + " 7 51.6 37.8 \n", + " 8 70.6 56.7 \n", + " 9 50.6 51.7 \n", + " 10 74.2 54.0 \n", + " 11 64.5 49.2 \n", + " 12 72.8 50.5 \n", + " 13 64.4 48.8 \n", + " 14 70.6 47.2 \n", + " 15 64.3 44.5 \n", + " 16 53.4 57.9 \n", + " 17 70.4 47.9 \n", + " 18 78.3 64.5 \n", + " 19 54.1 58.9 \n", + " 20 78.2 61.1 \n", + " 21 65.5 50.2 \n", + " 22 75.4 64.4 \n", + " 23 69.9 60.2 \n", + " 24 84.6 74.3 \n", + " 25 57.0 47.3 \n", + " 26 80.6 61.1 \n", + " 27 57.4 61.8 \n", + " 28 75.0 67.9 \n", + " 29 84.1 78.9 \n", + " 30 73.2 69.7 \n", + " 31 65.7 61.2 \n", + " 32 66.4 64.6 \n", + " 33 NaN NaN \n", + " 34 NaN NaN \n", + " \n", + " Ensino Médio Regular \n", + " 0 56.0 \n", + " 1 57.5 \n", + " 2 56.6 \n", + " 3 52.1 \n", + " 4 62.1 \n", + " 5 62.2 \n", + " 6 45.1 \n", + " 7 43.4 \n", + " 8 61.4 \n", + " 9 21.4 \n", + " 10 62.1 \n", + " 11 54.7 \n", + " 12 55.2 \n", + " 13 48.2 \n", + " 14 61.4 \n", + " 15 52.6 \n", + " 16 51.1 \n", + " 17 50.2 \n", + " 18 69.3 \n", + " 19 64.1 \n", + " 20 68.9 \n", + " 21 54.4 \n", + " 22 59.9 \n", + " 23 69.9 \n", + " 24 74.8 \n", + " 25 46.0 \n", + " 26 57.4 \n", + " 27 57.4 \n", + " 28 70.3 \n", + " 29 80.6 \n", + " 30 70.9 \n", + " 31 56.2 \n", + " 32 67.5 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2010': id_uf nome \\\n", + " 0 0 Brasil \n", + " 1 1 Norte \n", + " 2 2 Nordeste \n", + " 3 3 Sudeste \n", + " 4 4 Sul \n", + " 5 5 Centro-Oeste \n", + " 6 11 Rondônia \n", + " 7 12 Acre \n", + " 8 13 Amazonas \n", + " 9 14 Roraima \n", + " 10 15 Pará \n", + " 11 16 Amapá \n", + " 12 17 Tocantins \n", + " 13 21 Maranhão \n", + " 14 22 Piauí \n", + " 15 23 Ceará \n", + " 16 24 Rio Grande do Norte \n", + " 17 25 Paraíba \n", + " 18 26 Pernambuco \n", + " 19 27 Alagoas \n", + " 20 28 Sergipe \n", + " 21 29 Bahia \n", + " 22 31 Minas Gerais \n", + " 23 32 Espírito Santo \n", + " 24 33 Rio de Janeiro \n", + " 25 35 São Paulo \n", + " 26 41 Paraná \n", + " 27 42 Santa Catarina \n", + " 28 43 Rio Grande do Sul \n", + " 29 50 Mato Grosso do Sul \n", + " 30 51 Mato Grosso \n", + " 31 52 Goiás \n", + " 32 53 Distrito Federal \n", + " 33 NaN NaN \n", + " 34 Notas: Foram consideradas a rede total (escola... NaN \n", + " \n", + " Ensino Fundamental – Anos Iniciais Ensino Fundamental – Anos Finais \\\n", + " 0 67.5 57.2 \n", + " 1 70.0 59.4 \n", + " 2 67.1 57.8 \n", + " 3 65.0 52.8 \n", + " 4 72.4 62.8 \n", + " 5 68.6 67.2 \n", + " 6 67.5 60.7 \n", + " 7 57.2 49.4 \n", + " 8 70.7 64.2 \n", + " 9 50.6 59.2 \n", + " 10 74.9 62.5 \n", + " 11 66.7 54.7 \n", + " 12 68.6 57.5 \n", + " 13 65.2 55.5 \n", + " 14 69.2 56.1 \n", + " 15 64.2 50.7 \n", + " 16 56.2 66.8 \n", + " 17 71.7 56.5 \n", + " 18 74.9 65.6 \n", + " 19 57.6 60.2 \n", + " 20 78.2 72.2 \n", + " 21 67.4 59.3 \n", + " 22 69.3 66.1 \n", + " 23 59.1 59.0 \n", + " 24 82.2 73.3 \n", + " 25 58.4 47.4 \n", + " 26 76.0 59.0 \n", + " 27 54.1 62.1 \n", + " 28 73.0 67.8 \n", + " 29 81.2 78.7 \n", + " 30 64.6 66.7 \n", + " 31 62.2 66.2 \n", + " 32 62.7 61.7 \n", + " 33 NaN NaN \n", + " 34 NaN NaN \n", + " \n", + " Ensino Médio Regular \n", + " 0 56.4 \n", + " 1 63.0 \n", + " 2 60.3 \n", + " 3 52.1 \n", + " 4 55.6 \n", + " 5 64.6 \n", + " 6 45.9 \n", + " 7 56.6 \n", + " 8 70.9 \n", + " 9 58.6 \n", + " 10 70.8 \n", + " 11 54.1 \n", + " 12 56.0 \n", + " 13 56.7 \n", + " 14 65.9 \n", + " 15 50.6 \n", + " 16 67.4 \n", + " 17 55.6 \n", + " 18 69.9 \n", + " 19 69.1 \n", + " 20 80.1 \n", + " 21 57.6 \n", + " 22 58.9 \n", + " 23 60.1 \n", + " 24 67.7 \n", + " 25 47.3 \n", + " 26 51.1 \n", + " 27 53.0 \n", + " 28 62.9 \n", + " 29 75.6 \n", + " 30 69.6 \n", + " 31 63.2 \n", + " 32 61.7 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2011': id_uf nome \\\n", + " 0 0 Brasil \n", + " 1 1 Norte \n", + " 2 2 Nordeste \n", + " 3 3 Sudeste \n", + " 4 4 Sul \n", + " 5 5 Centro-Oeste \n", + " 6 11 Rondônia \n", + " 7 12 Acre \n", + " 8 13 Amazonas \n", + " 9 14 Roraima \n", + " 10 15 Pará \n", + " 11 16 Amapá \n", + " 12 17 Tocantins \n", + " 13 21 Maranhão \n", + " 14 22 Piauí \n", + " 15 23 Ceará \n", + " 16 24 Rio Grande do Norte \n", + " 17 25 Paraíba \n", + " 18 26 Pernambuco \n", + " 19 27 Alagoas \n", + " 20 28 Sergipe \n", + " 21 29 Bahia \n", + " 22 31 Minas Gerais \n", + " 23 32 Espírito Santo \n", + " 24 33 Rio de Janeiro \n", + " 25 35 São Paulo \n", + " 26 41 Paraná \n", + " 27 42 Santa Catarina \n", + " 28 43 Rio Grande do Sul \n", + " 29 50 Mato Grosso do Sul \n", + " 30 51 Mato Grosso \n", + " 31 52 Goiás \n", + " 32 53 Distrito Federal \n", + " 33 NaN NaN \n", + " 34 Notas: Foram consideradas a rede total (escola... NaN \n", + " \n", + " Ensino Fundamental – Anos Iniciais Ensino Fundamental – Anos Finais \\\n", + " 0 66.5 58.5 \n", + " 1 69.1 63.2 \n", + " 2 66.9 61.9 \n", + " 3 64.7 53.6 \n", + " 4 69.1 60.6 \n", + " 5 66.1 66.2 \n", + " 6 67.5 61.4 \n", + " 7 57.1 53.4 \n", + " 8 69.7 69.5 \n", + " 9 49.4 65.6 \n", + " 10 73.4 66.5 \n", + " 11 69.8 55.4 \n", + " 12 67.2 62.8 \n", + " 13 64.8 60.2 \n", + " 14 67.1 61.0 \n", + " 15 62.1 56.8 \n", + " 16 57.6 68.9 \n", + " 17 71.2 60.8 \n", + " 18 74.3 67.4 \n", + " 19 60.4 64.5 \n", + " 20 78.4 73.3 \n", + " 21 67.7 61.6 \n", + " 22 65.1 65.3 \n", + " 23 54.4 58.0 \n", + " 24 79.6 72.8 \n", + " 25 60.4 47.5 \n", + " 26 73.5 56.1 \n", + " 27 50.3 60.1 \n", + " 28 69.8 66.4 \n", + " 29 78.4 79.3 \n", + " 30 58.8 62.5 \n", + " 31 60.5 65.1 \n", + " 32 63.0 61.0 \n", + " 33 NaN NaN \n", + " 34 NaN NaN \n", + " \n", + " Ensino Médio Regular \n", + " 0 56.1 \n", + " 1 62.9 \n", + " 2 59.9 \n", + " 3 52.5 \n", + " 4 54.3 \n", + " 5 62.5 \n", + " 6 51.0 \n", + " 7 51.2 \n", + " 8 68.9 \n", + " 9 48.1 \n", + " 10 69.1 \n", + " 11 57.7 \n", + " 12 62.9 \n", + " 13 54.6 \n", + " 14 63.0 \n", + " 15 57.7 \n", + " 16 68.8 \n", + " 17 50.5 \n", + " 18 65.9 \n", + " 19 62.8 \n", + " 20 73.5 \n", + " 21 57.1 \n", + " 22 59.8 \n", + " 23 59.1 \n", + " 24 66.3 \n", + " 25 47.4 \n", + " 26 50.7 \n", + " 27 51.3 \n", + " 28 61.2 \n", + " 29 68.9 \n", + " 30 64.6 \n", + " 31 63.8 \n", + " 32 57.2 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2012': id_uf nome \\\n", + " 0 0 Brasil \n", + " 1 1 Norte \n", + " 2 2 Nordeste \n", + " 3 3 Sudeste \n", + " 4 4 Sul \n", + " 5 5 Centro-Oeste \n", + " 6 11 Rondônia \n", + " 7 12 Acre \n", + " 8 13 Amazonas \n", + " 9 14 Roraima \n", + " 10 15 Pará \n", + " 11 16 Amapá \n", + " 12 17 Tocantins \n", + " 13 21 Maranhão \n", + " 14 22 Piauí \n", + " 15 23 Ceará \n", + " 16 24 Rio Grande do Norte \n", + " 17 25 Paraíba \n", + " 18 26 Pernambuco \n", + " 19 27 Alagoas \n", + " 20 28 Sergipe \n", + " 21 29 Bahia \n", + " 22 31 Minas Gerais \n", + " 23 32 Espírito Santo \n", + " 24 33 Rio de Janeiro \n", + " 25 35 São Paulo \n", + " 26 41 Paraná \n", + " 27 42 Santa Catarina \n", + " 28 43 Rio Grande do Sul \n", + " 29 50 Mato Grosso do Sul \n", + " 30 51 Mato Grosso \n", + " 31 52 Goiás \n", + " 32 53 Distrito Federal \n", + " 33 NaN NaN \n", + " 34 Notas: Foram consideradas a rede total (escola... NaN \n", + " \n", + " Ensino Fundamental – Anos Iniciais Ensino Fundamental – Anos Finais \\\n", + " 0 64.4 58.9 \n", + " 1 67.0 64.7 \n", + " 2 66.2 63.7 \n", + " 3 62.0 53.1 \n", + " 4 67.1 61.4 \n", + " 5 62.5 64.3 \n", + " 6 67.0 60.8 \n", + " 7 54.5 58.5 \n", + " 8 66.0 72.1 \n", + " 9 43.5 62.5 \n", + " 10 70.2 67.7 \n", + " 11 68.3 61.9 \n", + " 12 68.3 62.9 \n", + " 13 62.6 60.3 \n", + " 14 68.5 61.3 \n", + " 15 57.8 59.4 \n", + " 16 57.6 69.9 \n", + " 17 69.3 61.9 \n", + " 18 74.2 69.6 \n", + " 19 61.7 66.2 \n", + " 20 79.5 75.4 \n", + " 21 68.0 64.0 \n", + " 22 57.8 63.3 \n", + " 23 50.4 59.4 \n", + " 24 78.8 71.8 \n", + " 25 59.6 46.6 \n", + " 26 73.8 56.9 \n", + " 27 41.5 59.9 \n", + " 28 67.0 67.6 \n", + " 29 77.2 78.6 \n", + " 30 47.1 57.6 \n", + " 31 56.6 63.0 \n", + " 32 62.6 59.9 \n", + " 33 NaN NaN \n", + " 34 NaN NaN \n", + " \n", + " Ensino Médio Regular \n", + " 0 55.3 \n", + " 1 62.9 \n", + " 2 60.9 \n", + " 3 51.4 \n", + " 4 51.8 \n", + " 5 61.5 \n", + " 6 53.9 \n", + " 7 52.0 \n", + " 8 66.0 \n", + " 9 57.5 \n", + " 10 70.9 \n", + " 11 52.5 \n", + " 12 61.0 \n", + " 13 57.8 \n", + " 14 58.3 \n", + " 15 59.0 \n", + " 16 67.7 \n", + " 17 52.1 \n", + " 18 67.1 \n", + " 19 63.5 \n", + " 20 73.7 \n", + " 21 59.8 \n", + " 22 59.8 \n", + " 23 56.2 \n", + " 24 60.5 \n", + " 25 46.6 \n", + " 26 46.9 \n", + " 27 49.9 \n", + " 28 59.4 \n", + " 29 69.8 \n", + " 30 57.5 \n", + " 31 64.7 \n", + " 32 53.6 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2013': id_uf nome \\\n", + " 0 0 Brasil \n", + " 1 1 Norte \n", + " 2 2 Nordeste \n", + " 3 3 Sudeste \n", + " 4 4 Sul \n", + " 5 5 Centro-Oeste \n", + " 6 11 Rondônia \n", + " 7 12 Acre \n", + " 8 13 Amazonas \n", + " 9 14 Roraima \n", + " 10 15 Pará \n", + " 11 16 Amapá \n", + " 12 17 Tocantins \n", + " 13 21 Maranhão \n", + " 14 22 Piauí \n", + " 15 23 Ceará \n", + " 16 24 Rio Grande do Norte \n", + " 17 25 Paraíba \n", + " 18 26 Pernambuco \n", + " 19 27 Alagoas \n", + " 20 28 Sergipe \n", + " 21 29 Bahia \n", + " 22 31 Minas Gerais \n", + " 23 32 Espírito Santo \n", + " 24 33 Rio de Janeiro \n", + " 25 35 São Paulo \n", + " 26 41 Paraná \n", + " 27 42 Santa Catarina \n", + " 28 43 Rio Grande do Sul \n", + " 29 50 Mato Grosso do Sul \n", + " 30 51 Mato Grosso \n", + " 31 52 Goiás \n", + " 32 53 Distrito Federal \n", + " 33 NaN NaN \n", + " 34 Notas: Foram consideradas a rede total (escola... NaN \n", + " \n", + " Ensino Fundamental – Anos Iniciais Ensino Fundamental – Anos Finais \\\n", + " 0 61.8 59.3 \n", + " 1 65.1 65.2 \n", + " 2 63.8 66.2 \n", + " 3 59.5 52.2 \n", + " 4 63.0 63.8 \n", + " 5 60.1 61.6 \n", + " 6 66.3 62.2 \n", + " 7 55.8 56.4 \n", + " 8 63.2 66.0 \n", + " 9 38.4 58.2 \n", + " 10 69.1 69.9 \n", + " 11 64.4 60.6 \n", + " 12 63.3 66.0 \n", + " 13 60.5 61.9 \n", + " 14 66.0 66.3 \n", + " 15 50.2 63.1 \n", + " 16 56.4 72.8 \n", + " 17 68.0 67.2 \n", + " 18 73.1 71.1 \n", + " 19 61.3 65.7 \n", + " 20 76.4 77.6 \n", + " 21 66.8 65.8 \n", + " 22 52.4 60.5 \n", + " 23 47.8 61.8 \n", + " 24 77.1 74.3 \n", + " 25 58.4 44.8 \n", + " 26 70.7 59.6 \n", + " 27 35.1 59.7 \n", + " 28 62.8 70.3 \n", + " 29 76.4 75.2 \n", + " 30 41.9 47.7 \n", + " 31 53.5 64.7 \n", + " 32 63.5 58.7 \n", + " 33 NaN NaN \n", + " 34 NaN NaN \n", + " \n", + " Ensino Médio Regular \n", + " 0 55.4 \n", + " 1 62.0 \n", + " 2 61.9 \n", + " 3 51.0 \n", + " 4 52.9 \n", + " 5 61.4 \n", + " 6 54.1 \n", + " 7 48.6 \n", + " 8 63.9 \n", + " 9 60.3 \n", + " 10 70.6 \n", + " 11 54.4 \n", + " 12 60.4 \n", + " 13 57.8 \n", + " 14 63.2 \n", + " 15 60.9 \n", + " 16 65.5 \n", + " 17 56.9 \n", + " 18 71.0 \n", + " 19 55.5 \n", + " 20 72.9 \n", + " 21 60.0 \n", + " 22 61.1 \n", + " 23 51.7 \n", + " 24 63.1 \n", + " 25 46.1 \n", + " 26 48.2 \n", + " 27 51.8 \n", + " 28 59.4 \n", + " 29 67.8 \n", + " 30 60.5 \n", + " 31 65.1 \n", + " 32 53.9 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2014': id_uf nome \\\n", + " 0 0 Brasil \n", + " 1 1 Norte \n", + " 2 2 Nordeste \n", + " 3 3 Sudeste \n", + " 4 4 Sul \n", + " 5 5 Centro-Oeste \n", + " 6 11 Rondônia \n", + " 7 12 Acre \n", + " 8 13 Amazonas \n", + " 9 14 Roraima \n", + " 10 15 Pará \n", + " 11 16 Amapá \n", + " 12 17 Tocantins \n", + " 13 21 Maranhão \n", + " 14 22 Piauí \n", + " 15 23 Ceará \n", + " 16 24 Rio Grande do Norte \n", + " 17 25 Paraíba \n", + " 18 26 Pernambuco \n", + " 19 27 Alagoas \n", + " 20 28 Sergipe \n", + " 21 29 Bahia \n", + " 22 31 Minas Gerais \n", + " 23 32 Espírito Santo \n", + " 24 33 Rio de Janeiro \n", + " 25 35 São Paulo \n", + " 26 41 Paraná \n", + " 27 42 Santa Catarina \n", + " 28 43 Rio Grande do Sul \n", + " 29 50 Mato Grosso do Sul \n", + " 30 51 Mato Grosso \n", + " 31 52 Goiás \n", + " 32 53 Distrito Federal \n", + " 33 NaN NaN \n", + " 34 Notas: Foram consideradas a rede total (escola... NaN \n", + " \n", + " Ensino Fundamental – Anos Iniciais Ensino Fundamental – Anos Finais \\\n", + " 0 58.7 59.6 \n", + " 1 60.7 65.6 \n", + " 2 60.4 68.1 \n", + " 3 56.4 51.9 \n", + " 4 61.2 64.5 \n", + " 5 56.0 58.6 \n", + " 6 57.7 63.7 \n", + " 7 53.6 55.5 \n", + " 8 61.6 67.2 \n", + " 9 35.5 54.8 \n", + " 10 64.8 72.0 \n", + " 11 60.4 60.3 \n", + " 12 56.9 65.2 \n", + " 13 59.0 63.6 \n", + " 14 62.1 68.2 \n", + " 15 42.5 63.9 \n", + " 16 52.5 74.8 \n", + " 17 65.0 69.4 \n", + " 18 71.2 72.7 \n", + " 19 60.1 69.4 \n", + " 20 71.9 81.3 \n", + " 21 64.4 67.9 \n", + " 22 46.0 56.6 \n", + " 23 45.6 63.0 \n", + " 24 75.3 73.7 \n", + " 25 56.1 44.9 \n", + " 26 73.2 61.2 \n", + " 27 30.0 57.5 \n", + " 28 58.9 70.9 \n", + " 29 75.1 73.4 \n", + " 30 35.0 37.8 \n", + " 31 46.7 62.0 \n", + " 32 62.9 61.1 \n", + " 33 NaN NaN \n", + " 34 NaN NaN \n", + " \n", + " Ensino Médio Regular \n", + " 0 54.5 \n", + " 1 58.9 \n", + " 2 64.7 \n", + " 3 49.3 \n", + " 4 52.4 \n", + " 5 61.0 \n", + " 6 52.9 \n", + " 7 49.4 \n", + " 8 67.0 \n", + " 9 64.4 \n", + " 10 63.8 \n", + " 11 57.8 \n", + " 12 60.8 \n", + " 13 61.1 \n", + " 14 63.6 \n", + " 15 62.2 \n", + " 16 69.0 \n", + " 17 60.3 \n", + " 18 68.6 \n", + " 19 61.3 \n", + " 20 74.1 \n", + " 21 67.8 \n", + " 22 60.5 \n", + " 23 53.9 \n", + " 24 63.1 \n", + " 25 43.5 \n", + " 26 48.4 \n", + " 27 50.4 \n", + " 28 59.0 \n", + " 29 66.4 \n", + " 30 58.7 \n", + " 31 64.4 \n", + " 32 54.2 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2015': id_uf nome \\\n", + " 0 0 Brasil \n", + " 1 1 Norte \n", + " 2 2 Nordeste \n", + " 3 3 Sudeste \n", + " 4 4 Sul \n", + " 5 5 Centro-Oeste \n", + " 6 11 Rondônia \n", + " 7 12 Acre \n", + " 8 13 Amazonas \n", + " 9 14 Roraima \n", + " 10 15 Pará \n", + " 11 16 Amapá \n", + " 12 17 Tocantins \n", + " 13 21 Maranhão \n", + " 14 22 Piauí \n", + " 15 23 Ceará \n", + " 16 24 Rio Grande do Norte \n", + " 17 25 Paraíba \n", + " 18 26 Pernambuco \n", + " 19 27 Alagoas \n", + " 20 28 Sergipe \n", + " 21 29 Bahia \n", + " 22 31 Minas Gerais \n", + " 23 32 Espírito Santo \n", + " 24 33 Rio de Janeiro \n", + " 25 35 São Paulo \n", + " 26 41 Paraná \n", + " 27 42 Santa Catarina \n", + " 28 43 Rio Grande do Sul \n", + " 29 50 Mato Grosso do Sul \n", + " 30 51 Mato Grosso \n", + " 31 52 Goiás \n", + " 32 53 Distrito Federal \n", + " 33 NaN NaN \n", + " 34 Notas: Foram consideradas a rede total (escola... NaN \n", + " \n", + " Ensino Fundamental – Anos Iniciais Ensino Fundamental – Anos Finais \\\n", + " 0 55.8 59.2 \n", + " 1 57.8 66.0 \n", + " 2 57.2 67.6 \n", + " 3 53.8 51.1 \n", + " 4 57.6 63.6 \n", + " 5 53.3 56.2 \n", + " 6 53.0 62.4 \n", + " 7 50.5 54.1 \n", + " 8 59.2 65.1 \n", + " 9 32.1 54.7 \n", + " 10 62.8 73.7 \n", + " 11 55.7 61.7 \n", + " 12 53.1 64.9 \n", + " 13 55.3 63.7 \n", + " 14 60.1 67.5 \n", + " 15 36.3 60.4 \n", + " 16 49.0 74.2 \n", + " 17 62.9 70.4 \n", + " 18 69.3 73.1 \n", + " 19 58.1 69.9 \n", + " 20 68.2 81.0 \n", + " 21 62.7 68.6 \n", + " 22 41.7 53.1 \n", + " 23 43.0 62.6 \n", + " 24 72.9 72.3 \n", + " 25 54.5 44.4 \n", + " 26 69.7 61.2 \n", + " 27 26.5 54.1 \n", + " 28 56.0 70.5 \n", + " 29 73.1 69.4 \n", + " 30 30.8 34.0 \n", + " 31 42.7 60.6 \n", + " 32 62.1 59.7 \n", + " 33 NaN NaN \n", + " 34 NaN NaN \n", + " \n", + " Ensino Médio Regular \n", + " 0 53.7 \n", + " 1 58.4 \n", + " 2 64.4 \n", + " 3 48.3 \n", + " 4 52.0 \n", + " 5 58.3 \n", + " 6 53.3 \n", + " 7 49.6 \n", + " 8 68.1 \n", + " 9 54.5 \n", + " 10 65.6 \n", + " 11 55.5 \n", + " 12 58.9 \n", + " 13 61.0 \n", + " 14 65.6 \n", + " 15 62.6 \n", + " 16 69.1 \n", + " 17 60.4 \n", + " 18 66.0 \n", + " 19 57.8 \n", + " 20 73.7 \n", + " 21 67.6 \n", + " 22 60.9 \n", + " 23 54.2 \n", + " 24 62.0 \n", + " 25 41.7 \n", + " 26 48.0 \n", + " 27 50.1 \n", + " 28 58.0 \n", + " 29 67.2 \n", + " 30 52.3 \n", + " 31 61.6 \n", + " 32 52.7 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2016': id_uf nome \\\n", + " 0 0 Brasil \n", + " 1 1 Norte \n", + " 2 2 Nordeste \n", + " 3 3 Sudeste \n", + " 4 4 Sul \n", + " 5 5 Centro-Oeste \n", + " 6 11 Rondônia \n", + " 7 12 Acre \n", + " 8 13 Amazonas \n", + " 9 14 Roraima \n", + " 10 15 Pará \n", + " 11 16 Amapá \n", + " 12 17 Tocantins \n", + " 13 21 Maranhão \n", + " 14 22 Piauí \n", + " 15 23 Ceará \n", + " 16 24 Rio Grande do Norte \n", + " 17 25 Paraíba \n", + " 18 26 Pernambuco \n", + " 19 27 Alagoas \n", + " 20 28 Sergipe \n", + " 21 29 Bahia \n", + " 22 31 Minas Gerais \n", + " 23 32 Espírito Santo \n", + " 24 33 Rio de Janeiro \n", + " 25 35 São Paulo \n", + " 26 41 Paraná \n", + " 27 42 Santa Catarina \n", + " 28 43 Rio Grande do Sul \n", + " 29 50 Mato Grosso do Sul \n", + " 30 51 Mato Grosso \n", + " 31 52 Goiás \n", + " 32 53 Distrito Federal \n", + " 33 NaN NaN \n", + " 34 Notas: Foram consideradas a rede total (escola... NaN \n", + " \n", + " Ensino Fundamental – Anos Iniciais Ensino Fundamental – Anos Finais \\\n", + " 0 53.5 58.2 \n", + " 1 55.7 65.6 \n", + " 2 54.3 66.9 \n", + " 3 51.4 49.7 \n", + " 4 56.9 61.2 \n", + " 5 51.0 55.3 \n", + " 6 47.2 62.7 \n", + " 7 46.8 55.5 \n", + " 8 57.7 63.3 \n", + " 9 28.9 52.9 \n", + " 10 61.3 73.2 \n", + " 11 54.4 62.0 \n", + " 12 52.5 62.7 \n", + " 13 53.1 64.2 \n", + " 14 57.3 67.5 \n", + " 15 30.9 55.6 \n", + " 16 45.4 72.9 \n", + " 17 60.3 71.4 \n", + " 18 65.8 74.0 \n", + " 19 56.1 70.7 \n", + " 20 66.1 79.4 \n", + " 21 61.4 69.9 \n", + " 22 39.3 50.9 \n", + " 23 40.7 59.8 \n", + " 24 70.1 70.2 \n", + " 25 51.9 43.3 \n", + " 26 69.5 59.3 \n", + " 27 24.5 47.9 \n", + " 28 54.9 68.4 \n", + " 29 71.9 67.3 \n", + " 30 30.0 31.1 \n", + " 31 40.0 60.1 \n", + " 32 59.7 59.9 \n", + " 33 NaN NaN \n", + " 34 NaN NaN \n", + " \n", + " Ensino Médio Regular \n", + " 0 53.9 \n", + " 1 60.4 \n", + " 2 64.6 \n", + " 3 47.8 \n", + " 4 53.6 \n", + " 5 57.3 \n", + " 6 54.4 \n", + " 7 51.1 \n", + " 8 67.3 \n", + " 9 51.1 \n", + " 10 69.7 \n", + " 11 55.5 \n", + " 12 60.9 \n", + " 13 58.7 \n", + " 14 63.5 \n", + " 15 64.1 \n", + " 16 68.3 \n", + " 17 65.5 \n", + " 18 65.4 \n", + " 19 64.6 \n", + " 20 72.0 \n", + " 21 68.0 \n", + " 22 59.8 \n", + " 23 56.2 \n", + " 24 58.3 \n", + " 25 41.2 \n", + " 26 49.1 \n", + " 27 50.7 \n", + " 28 61.0 \n", + " 29 68.0 \n", + " 30 49.8 \n", + " 31 61.6 \n", + " 32 50.8 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2017': id_uf nome \\\n", + " 0 0 Brasil \n", + " 1 1 Norte \n", + " 2 2 Nordeste \n", + " 3 3 Sudeste \n", + " 4 4 Sul \n", + " 5 5 Centro-Oeste \n", + " 6 11 Rondônia \n", + " 7 12 Acre \n", + " 8 13 Amazonas \n", + " 9 14 Roraima \n", + " 10 15 Pará \n", + " 11 16 Amapá \n", + " 12 17 Tocantins \n", + " 13 21 Maranhão \n", + " 14 22 Piauí \n", + " 15 23 Ceará \n", + " 16 24 Rio Grande do Norte \n", + " 17 25 Paraíba \n", + " 18 26 Pernambuco \n", + " 19 27 Alagoas \n", + " 20 28 Sergipe \n", + " 21 29 Bahia \n", + " 22 31 Minas Gerais \n", + " 23 32 Espírito Santo \n", + " 24 33 Rio de Janeiro \n", + " 25 35 São Paulo \n", + " 26 41 Paraná \n", + " 27 42 Santa Catarina \n", + " 28 43 Rio Grande do Sul \n", + " 29 50 Mato Grosso do Sul \n", + " 30 51 Mato Grosso \n", + " 31 52 Goiás \n", + " 32 53 Distrito Federal \n", + " 33 NaN NaN \n", + " 34 Notas: Foram consideradas a rede total (escola... NaN \n", + " \n", + " Ensino Fundamental – Anos Iniciais Ensino Fundamental – Anos Finais \\\n", + " 0 51.4 56.8 \n", + " 1 53.1 64.8 \n", + " 2 52.2 65.3 \n", + " 3 49.4 48.3 \n", + " 4 54.6 59.2 \n", + " 5 48.2 52.5 \n", + " 6 42.7 60.5 \n", + " 7 45.1 54.0 \n", + " 8 54.5 62.9 \n", + " 9 26.2 50.3 \n", + " 10 59.9 72.7 \n", + " 11 53.8 60.4 \n", + " 12 44.1 61.6 \n", + " 13 50.5 63.3 \n", + " 14 54.4 63.7 \n", + " 15 28.4 50.8 \n", + " 16 43.2 69.6 \n", + " 17 59.1 71.3 \n", + " 18 62.6 73.2 \n", + " 19 55.1 69.8 \n", + " 20 62.3 78.4 \n", + " 21 59.6 70.4 \n", + " 22 36.8 49.4 \n", + " 23 37.9 58.2 \n", + " 24 68.0 67.8 \n", + " 25 50.8 41.2 \n", + " 26 66.0 58.0 \n", + " 27 23.0 44.4 \n", + " 28 53.4 66.9 \n", + " 29 71.5 68.3 \n", + " 30 29.3 33.3 \n", + " 31 37.3 54.6 \n", + " 32 56.8 56.1 \n", + " 33 NaN NaN \n", + " 34 NaN NaN \n", + " \n", + " Ensino Médio Regular \n", + " 0 53.1 \n", + " 1 59.9 \n", + " 2 61.8 \n", + " 3 46.7 \n", + " 4 54.9 \n", + " 5 55.5 \n", + " 6 52.2 \n", + " 7 48.1 \n", + " 8 64.1 \n", + " 9 51.2 \n", + " 10 69.8 \n", + " 11 54.6 \n", + " 12 59.5 \n", + " 13 56.2 \n", + " 14 59.9 \n", + " 15 60.8 \n", + " 16 67.9 \n", + " 17 66.9 \n", + " 18 65.2 \n", + " 19 52.6 \n", + " 20 75.2 \n", + " 21 65.7 \n", + " 22 57.4 \n", + " 23 51.5 \n", + " 24 58.6 \n", + " 25 39.6 \n", + " 26 51.2 \n", + " 27 50.5 \n", + " 28 62.0 \n", + " 29 65.6 \n", + " 30 46.4 \n", + " 31 60.5 \n", + " 32 50.5 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2018': id_uf nome \\\n", + " 0 0 Brasil \n", + " 1 1 Norte \n", + " 2 2 Nordeste \n", + " 3 3 Sudeste \n", + " 4 4 Sul \n", + " 5 5 Centro-Oeste \n", + " 6 11 Rondônia \n", + " 7 12 Acre \n", + " 8 13 Amazonas \n", + " 9 14 Roraima \n", + " 10 15 Pará \n", + " 11 16 Amapá \n", + " 12 17 Tocantins \n", + " 13 21 Maranhão \n", + " 14 22 Piauí \n", + " 15 23 Ceará \n", + " 16 24 Rio Grande do Norte \n", + " 17 25 Paraíba \n", + " 18 26 Pernambuco \n", + " 19 27 Alagoas \n", + " 20 28 Sergipe \n", + " 21 29 Bahia \n", + " 22 31 Minas Gerais \n", + " 23 32 Espírito Santo \n", + " 24 33 Rio de Janeiro \n", + " 25 35 São Paulo \n", + " 26 41 Paraná \n", + " 27 42 Santa Catarina \n", + " 28 43 Rio Grande do Sul \n", + " 29 50 Mato Grosso do Sul \n", + " 30 51 Mato Grosso \n", + " 31 52 Goiás \n", + " 32 53 Distrito Federal \n", + " 33 NaN NaN \n", + " 34 Notas: Foram consideradas a rede total (escola... NaN \n", + " \n", + " Ensino Fundamental – Anos Iniciais Ensino Fundamental – Anos Finais \\\n", + " 0 48.4 55.0 \n", + " 1 49.9 62.6 \n", + " 2 48.9 63.4 \n", + " 3 46.6 46.8 \n", + " 4 52.5 57.0 \n", + " 5 44.1 49.8 \n", + " 6 36.6 58.4 \n", + " 7 41.4 51.5 \n", + " 8 51.6 60.7 \n", + " 9 25.2 45.0 \n", + " 10 57.7 70.7 \n", + " 11 51.3 60.2 \n", + " 12 38.7 57.7 \n", + " 13 47.7 61.2 \n", + " 14 50.9 62.2 \n", + " 15 24.6 46.0 \n", + " 16 41.0 67.5 \n", + " 17 57.0 70.7 \n", + " 18 57.0 70.8 \n", + " 19 50.1 68.2 \n", + " 20 60.8 76.4 \n", + " 21 56.8 69.9 \n", + " 22 34.0 48.1 \n", + " 23 34.5 55.4 \n", + " 24 64.7 66.6 \n", + " 25 48.3 38.8 \n", + " 26 63.0 55.2 \n", + " 27 21.7 41.4 \n", + " 28 51.9 65.4 \n", + " 29 67.4 67.6 \n", + " 30 27.9 34.6 \n", + " 31 32.9 50.0 \n", + " 32 54.3 53.8 \n", + " 33 NaN NaN \n", + " 34 NaN NaN \n", + " \n", + " Ensino Médio Regular \n", + " 0 53.2 \n", + " 1 61.0 \n", + " 2 61.2 \n", + " 3 47.0 \n", + " 4 54.1 \n", + " 5 53.2 \n", + " 6 51.2 \n", + " 7 48.4 \n", + " 8 61.4 \n", + " 9 52.5 \n", + " 10 70.6 \n", + " 11 56.1 \n", + " 12 58.8 \n", + " 13 56.3 \n", + " 14 55.7 \n", + " 15 57.4 \n", + " 16 67.7 \n", + " 17 66.1 \n", + " 18 63.2 \n", + " 19 60.0 \n", + " 20 75.8 \n", + " 21 63.9 \n", + " 22 55.4 \n", + " 23 52.4 \n", + " 24 60.3 \n", + " 25 38.8 \n", + " 26 49.9 \n", + " 27 47.4 \n", + " 28 63.0 \n", + " 29 62.6 \n", + " 30 43.8 \n", + " 31 58.2 \n", + " 32 47.6 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2019': id_uf nome \\\n", + " 0 0 Brasil \n", + " 1 1 Norte \n", + " 2 2 Nordeste \n", + " 3 3 Sudeste \n", + " 4 4 Sul \n", + " 5 5 Centro-Oeste \n", + " 6 11 Rondônia \n", + " 7 12 Acre \n", + " 8 13 Amazonas \n", + " 9 14 Roraima \n", + " 10 15 Pará \n", + " 11 16 Amapá \n", + " 12 17 Tocantins \n", + " 13 21 Maranhão \n", + " 14 22 Piauí \n", + " 15 23 Ceará \n", + " 16 24 Rio Grande do Norte \n", + " 17 25 Paraíba \n", + " 18 26 Pernambuco \n", + " 19 27 Alagoas \n", + " 20 28 Sergipe \n", + " 21 29 Bahia \n", + " 22 31 Minas Gerais \n", + " 23 32 Espírito Santo \n", + " 24 33 Rio de Janeiro \n", + " 25 35 São Paulo \n", + " 26 41 Paraná \n", + " 27 42 Santa Catarina \n", + " 28 43 Rio Grande do Sul \n", + " 29 50 Mato Grosso do Sul \n", + " 30 51 Mato Grosso \n", + " 31 52 Goiás \n", + " 32 53 Distrito Federal \n", + " 33 NaN NaN \n", + " 34 Notas: Foram consideradas a rede total (escola... NaN \n", + " \n", + " Ensino Fundamental – Anos Iniciais Ensino Fundamental – Anos Finais \\\n", + " 0 44.9 53.3 \n", + " 1 46.8 60.9 \n", + " 2 45.1 61.3 \n", + " 3 42.6 45.2 \n", + " 4 50.1 55.0 \n", + " 5 41.1 48.3 \n", + " 6 30.9 52.9 \n", + " 7 36.9 49.6 \n", + " 8 49.0 59.5 \n", + " 9 24.8 43.4 \n", + " 10 55.1 69.7 \n", + " 11 46.4 59.8 \n", + " 12 35.5 55.8 \n", + " 13 44.7 59.9 \n", + " 14 45.6 62.2 \n", + " 15 21.6 40.5 \n", + " 16 37.6 64.8 \n", + " 17 53.8 70.6 \n", + " 18 51.2 68.4 \n", + " 19 45.0 65.0 \n", + " 20 57.4 75.1 \n", + " 21 53.5 69.5 \n", + " 22 30.7 45.6 \n", + " 23 30.8 53.4 \n", + " 24 60.4 65.9 \n", + " 25 43.9 37.5 \n", + " 26 61.6 51.5 \n", + " 27 20.0 38.7 \n", + " 28 49.1 64.2 \n", + " 29 65.0 66.2 \n", + " 30 27.5 33.9 \n", + " 31 30.2 47.7 \n", + " 32 44.8 50.5 \n", + " 33 NaN NaN \n", + " 34 NaN NaN \n", + " \n", + " Ensino Médio Regular \n", + " 0 51.1 \n", + " 1 59.3 \n", + " 2 59.4 \n", + " 3 44.7 \n", + " 4 50.9 \n", + " 5 51.4 \n", + " 6 48.3 \n", + " 7 46.7 \n", + " 8 62.3 \n", + " 9 47.7 \n", + " 10 68.5 \n", + " 11 51.7 \n", + " 12 56.8 \n", + " 13 54.8 \n", + " 14 55.8 \n", + " 15 52.0 \n", + " 16 66.1 \n", + " 17 64.5 \n", + " 18 65.5 \n", + " 19 59.3 \n", + " 20 74.6 \n", + " 21 63.1 \n", + " 22 50.7 \n", + " 23 50.2 \n", + " 24 59.5 \n", + " 25 36.9 \n", + " 26 45.2 \n", + " 27 43.0 \n", + " 28 59.4 \n", + " 29 59.2 \n", + " 30 43.9 \n", + " 31 56.0 \n", + " 32 45.1 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2020': id_uf nome \\\n", + " 0 0 Brasil \n", + " 1 1 Norte \n", + " 2 2 Nordeste \n", + " 3 3 Sudeste \n", + " 4 4 Sul \n", + " 5 5 Centro-Oeste \n", + " 6 11 Rondônia \n", + " 7 12 Acre \n", + " 8 13 Amazonas \n", + " 9 14 Roraima \n", + " 10 15 Pará \n", + " 11 16 Amapá \n", + " 12 17 Tocantins \n", + " 13 21 Maranhão \n", + " 14 22 Piauí \n", + " 15 23 Ceará \n", + " 16 24 Rio Grande do Norte \n", + " 17 25 Paraíba \n", + " 18 26 Pernambuco \n", + " 19 27 Alagoas \n", + " 20 28 Sergipe \n", + " 21 29 Bahia \n", + " 22 31 Minas Gerais \n", + " 23 32 Espírito Santo \n", + " 24 33 Rio de Janeiro \n", + " 25 35 São Paulo \n", + " 26 41 Paraná \n", + " 27 42 Santa Catarina \n", + " 28 43 Rio Grande do Sul \n", + " 29 50 Mato Grosso do Sul \n", + " 30 51 Mato Grosso \n", + " 31 52 Goiás \n", + " 32 53 Distrito Federal \n", + " 33 NaN NaN \n", + " 34 Notas: Foram consideradas a rede total (escola... NaN \n", + " \n", + " Ensino Fundamental – Anos Iniciais Ensino Fundamental – Anos Finais \\\n", + " 0 41.7 51.6 \n", + " 1 44.0 58.8 \n", + " 2 40.9 59.3 \n", + " 3 39.3 43.8 \n", + " 4 48.2 53.7 \n", + " 5 38.1 45.4 \n", + " 6 29.2 47.8 \n", + " 7 34.9 47.4 \n", + " 8 45.9 57.8 \n", + " 9 25.2 37.0 \n", + " 10 52.0 68.6 \n", + " 11 41.1 59.7 \n", + " 12 32.2 52.9 \n", + " 13 41.2 58.6 \n", + " 14 39.8 58.2 \n", + " 15 18.4 37.1 \n", + " 16 33.4 62.5 \n", + " 17 50.3 68.4 \n", + " 18 43.5 65.2 \n", + " 19 39.7 61.2 \n", + " 20 53.9 74.8 \n", + " 21 50.6 68.8 \n", + " 22 28.2 44.7 \n", + " 23 27.9 51.2 \n", + " 24 55.4 64.5 \n", + " 25 40.7 35.4 \n", + " 26 61.5 49.7 \n", + " 27 18.7 37.4 \n", + " 28 46.0 63.8 \n", + " 29 61.7 65.3 \n", + " 30 24.5 35.0 \n", + " 31 29.2 42.5 \n", + " 32 39.9 49.1 \n", + " 33 NaN NaN \n", + " 34 NaN NaN \n", + " \n", + " Ensino Médio Regular \n", + " 0 50.3 \n", + " 1 58.5 \n", + " 2 58.5 \n", + " 3 44.2 \n", + " 4 48.8 \n", + " 5 49.4 \n", + " 6 49.1 \n", + " 7 46.7 \n", + " 8 58.6 \n", + " 9 48.3 \n", + " 10 67.6 \n", + " 11 52.2 \n", + " 12 54.8 \n", + " 13 52.4 \n", + " 14 55.8 \n", + " 15 49.2 \n", + " 16 62.7 \n", + " 17 62.1 \n", + " 18 63.7 \n", + " 19 58.8 \n", + " 20 71.3 \n", + " 21 64.9 \n", + " 22 49.6 \n", + " 23 49.4 \n", + " 24 60.4 \n", + " 25 35.7 \n", + " 26 44.3 \n", + " 27 40.0 \n", + " 28 58.0 \n", + " 29 59.3 \n", + " 30 42.7 \n", + " 31 51.9 \n", + " 32 44.3 \n", + " 33 NaN \n", + " 34 NaN ,\n", + " '2021': id_uf nome \\\n", + " 0 0 Brasil \n", + " 1 1 Norte \n", + " 2 2 Nordeste \n", + " 3 3 Sudeste \n", + " 4 4 Sul \n", + " 5 5 Centro-Oeste \n", + " 6 11 Rondônia \n", + " 7 12 Acre \n", + " 8 13 Amazonas \n", + " 9 14 Roraima \n", + " 10 15 Pará \n", + " 11 16 Amapá \n", + " 12 17 Tocantins \n", + " 13 21 Maranhão \n", + " 14 22 Piauí \n", + " 15 23 Ceará \n", + " 16 24 Rio Grande do Norte \n", + " 17 25 Paraíba \n", + " 18 26 Pernambuco \n", + " 19 27 Alagoas \n", + " 20 28 Sergipe \n", + " 21 29 Bahia \n", + " 22 31 Minas Gerais \n", + " 23 32 Espírito Santo \n", + " 24 33 Rio de Janeiro \n", + " 25 35 São Paulo \n", + " 26 41 Paraná \n", + " 27 42 Santa Catarina \n", + " 28 43 Rio Grande do Sul \n", + " 29 50 Mato Grosso do Sul \n", + " 30 51 Mato Grosso \n", + " 31 52 Goiás \n", + " 32 53 Distrito Federal \n", + " 33 NaN NaN \n", + " 34 Notas: Foram consideradas a rede total (escola... NaN \n", + " \n", + " Ensino Fundamental – Anos Iniciais Ensino Fundamental – Anos Finais \\\n", + " 0 36.6 49.5 \n", + " 1 36.8 57.7 \n", + " 2 34.2 56.9 \n", + " 3 36.2 41.1 \n", + " 4 43.1 51.1 \n", + " 5 33.6 43.3 \n", + " 6 23.4 43.6 \n", + " 7 27.9 46.2 \n", + " 8 39.8 56.7 \n", + " 9 20.5 35.8 \n", + " 10 43.4 68.1 \n", + " 11 34.0 58.8 \n", + " 12 27.0 48.7 \n", + " 13 35.3 56.5 \n", + " 14 33.2 56.3 \n", + " 15 14.6 33.3 \n", + " 16 23.6 60.1 \n", + " 17 42.4 65.7 \n", + " 18 36.4 60.8 \n", + " 19 32.2 57.4 \n", + " 20 44.5 72.2 \n", + " 21 42.9 66.6 \n", + " 22 25.0 40.4 \n", + " 23 20.4 47.6 \n", + " 24 49.3 63.4 \n", + " 25 38.8 32.6 \n", + " 26 60.2 46.1 \n", + " 27 14.6 35.1 \n", + " 28 37.6 61.6 \n", + " 29 56.0 63.4 \n", + " 30 21.1 32.3 \n", + " 31 25.2 39.8 \n", + " 32 36.0 48.9 \n", + " 33 NaN NaN \n", + " 34 NaN NaN \n", + " \n", + " Ensino Médio Regular \n", + " 0 48.3 \n", + " 1 57.5 \n", + " 2 57.8 \n", + " 3 41.8 \n", + " 4 44.9 \n", + " 5 46.1 \n", + " 6 48.7 \n", + " 7 44.4 \n", + " 8 55.9 \n", + " 9 43.7 \n", + " 10 66.7 \n", + " 11 54.5 \n", + " 12 52.9 \n", + " 13 50.8 \n", + " 14 55.3 \n", + " 15 44.4 \n", + " 16 59.9 \n", + " 17 61.8 \n", + " 18 61.3 \n", + " 19 58.9 \n", + " 20 68.7 \n", + " 21 68.6 \n", + " 22 45.1 \n", + " 23 47.3 \n", + " 24 57.8 \n", + " 25 34.9 \n", + " 26 40.6 \n", + " 27 37.1 \n", + " 28 53.2 \n", + " 29 57.9 \n", + " 30 40.7 \n", + " 31 46.5 \n", + " 32 43.6 \n", + " 33 NaN \n", + " 34 NaN }" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dfs" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sheet: 2007\n", + "Index(['id_uf', 'nome', 'Ensino Fundamental – Anos Iniciais',\n", + " 'Ensino Fundamental – Anos Finais', 'Ensino Médio Regular'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2008\n", + "Index(['id_uf', 'nome', 'Ensino Fundamental – Anos Iniciais',\n", + " 'Ensino Fundamental – Anos Finais', 'Ensino Médio Regular'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2009\n", + "Index(['id_uf', 'nome', 'Ensino Fundamental – Anos Iniciais',\n", + " 'Ensino Fundamental – Anos Finais', 'Ensino Médio Regular'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2010\n", + "Index(['id_uf', 'nome', 'Ensino Fundamental – Anos Iniciais',\n", + " 'Ensino Fundamental – Anos Finais', 'Ensino Médio Regular'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2011\n", + "Index(['id_uf', 'nome', 'Ensino Fundamental – Anos Iniciais',\n", + " 'Ensino Fundamental – Anos Finais', 'Ensino Médio Regular'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2012\n", + "Index(['id_uf', 'nome', 'Ensino Fundamental – Anos Iniciais',\n", + " 'Ensino Fundamental – Anos Finais', 'Ensino Médio Regular'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2013\n", + "Index(['id_uf', 'nome', 'Ensino Fundamental – Anos Iniciais',\n", + " 'Ensino Fundamental – Anos Finais', 'Ensino Médio Regular'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2014\n", + "Index(['id_uf', 'nome', 'Ensino Fundamental – Anos Iniciais',\n", + " 'Ensino Fundamental – Anos Finais', 'Ensino Médio Regular'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2015\n", + "Index(['id_uf', 'nome', 'Ensino Fundamental – Anos Iniciais',\n", + " 'Ensino Fundamental – Anos Finais', 'Ensino Médio Regular'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2016\n", + "Index(['id_uf', 'nome', 'Ensino Fundamental – Anos Iniciais',\n", + " 'Ensino Fundamental – Anos Finais', 'Ensino Médio Regular'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2017\n", + "Index(['id_uf', 'nome', 'Ensino Fundamental – Anos Iniciais',\n", + " 'Ensino Fundamental – Anos Finais', 'Ensino Médio Regular'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2018\n", + "Index(['id_uf', 'nome', 'Ensino Fundamental – Anos Iniciais',\n", + " 'Ensino Fundamental – Anos Finais', 'Ensino Médio Regular'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2019\n", + "Index(['id_uf', 'nome', 'Ensino Fundamental – Anos Iniciais',\n", + " 'Ensino Fundamental – Anos Finais', 'Ensino Médio Regular'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2020\n", + "Index(['id_uf', 'nome', 'Ensino Fundamental – Anos Iniciais',\n", + " 'Ensino Fundamental – Anos Finais', 'Ensino Médio Regular'],\n", + " dtype='object')\n", + "\n", + "Sheet: 2021\n", + "Index(['id_uf', 'nome', 'Ensino Fundamental – Anos Iniciais',\n", + " 'Ensino Fundamental – Anos Finais', 'Ensino Médio Regular'],\n", + " dtype='object')\n", + "\n" + ] + } + ], + "source": [ + "for sheet_name, df in dfs.items():\n", + " print(f\"Sheet: {sheet_name}\")\n", + " print(df.columns) # This will print the column names of each DataFrame\n", + " print() # Adds a blank line for readability" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "melted_dataframe = pd.concat(\n", + " [\n", + " df.pipe(\n", + " lambda d: d.loc[(d[\"id_uf\"] == 0)]\n", + " )\n", + " .pipe(\n", + " lambda d: pd.melt(\n", + " d,\n", + " id_vars=[\"id_uf\", \"nome\"],\n", + " value_vars=d.columns.difference([\"id_uf\", \"nome\"]).tolist(), # Convert to list\n", + " var_name=\"etapa_ensino\",\n", + " value_name=\"tdi\",\n", + " )\n", + " )\n", + " .assign(ano=ano)\n", + " for ano, df in dfs.items()\n", + " ]\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
id_ufnomeetapa_ensinotdiano
00BrasilEnsino Fundamental – Anos Finais60.62007
10BrasilEnsino Fundamental – Anos Iniciais72.22007
20BrasilEnsino Médio Regular65.32007
00BrasilEnsino Fundamental – Anos Finais54.52008
10BrasilEnsino Fundamental – Anos Iniciais66.52008
20BrasilEnsino Médio Regular57.32008
00BrasilEnsino Fundamental – Anos Finais54.82009
10BrasilEnsino Fundamental – Anos Iniciais68.42009
20BrasilEnsino Médio Regular56.02009
00BrasilEnsino Fundamental – Anos Finais57.22010
10BrasilEnsino Fundamental – Anos Iniciais67.52010
20BrasilEnsino Médio Regular56.42010
00BrasilEnsino Fundamental – Anos Finais58.52011
10BrasilEnsino Fundamental – Anos Iniciais66.52011
20BrasilEnsino Médio Regular56.12011
00BrasilEnsino Fundamental – Anos Finais58.92012
10BrasilEnsino Fundamental – Anos Iniciais64.42012
20BrasilEnsino Médio Regular55.32012
00BrasilEnsino Fundamental – Anos Finais59.32013
10BrasilEnsino Fundamental – Anos Iniciais61.82013
20BrasilEnsino Médio Regular55.42013
00BrasilEnsino Fundamental – Anos Finais59.62014
10BrasilEnsino Fundamental – Anos Iniciais58.72014
20BrasilEnsino Médio Regular54.52014
00BrasilEnsino Fundamental – Anos Finais59.22015
10BrasilEnsino Fundamental – Anos Iniciais55.82015
20BrasilEnsino Médio Regular53.72015
00BrasilEnsino Fundamental – Anos Finais58.22016
10BrasilEnsino Fundamental – Anos Iniciais53.52016
20BrasilEnsino Médio Regular53.92016
00BrasilEnsino Fundamental – Anos Finais56.82017
10BrasilEnsino Fundamental – Anos Iniciais51.42017
20BrasilEnsino Médio Regular53.12017
00BrasilEnsino Fundamental – Anos Finais55.02018
10BrasilEnsino Fundamental – Anos Iniciais48.42018
20BrasilEnsino Médio Regular53.22018
00BrasilEnsino Fundamental – Anos Finais53.32019
10BrasilEnsino Fundamental – Anos Iniciais44.92019
20BrasilEnsino Médio Regular51.12019
00BrasilEnsino Fundamental – Anos Finais51.62020
10BrasilEnsino Fundamental – Anos Iniciais41.72020
20BrasilEnsino Médio Regular50.32020
00BrasilEnsino Fundamental – Anos Finais49.52021
10BrasilEnsino Fundamental – Anos Iniciais36.62021
20BrasilEnsino Médio Regular48.32021
\n", + "
" + ], + "text/plain": [ + " id_uf nome etapa_ensino tdi ano\n", + "0 0 Brasil Ensino Fundamental – Anos Finais 60.6 2007\n", + "1 0 Brasil Ensino Fundamental – Anos Iniciais 72.2 2007\n", + "2 0 Brasil Ensino Médio Regular 65.3 2007\n", + "0 0 Brasil Ensino Fundamental – Anos Finais 54.5 2008\n", + "1 0 Brasil Ensino Fundamental – Anos Iniciais 66.5 2008\n", + "2 0 Brasil Ensino Médio Regular 57.3 2008\n", + "0 0 Brasil Ensino Fundamental – Anos Finais 54.8 2009\n", + "1 0 Brasil Ensino Fundamental – Anos Iniciais 68.4 2009\n", + "2 0 Brasil Ensino Médio Regular 56.0 2009\n", + "0 0 Brasil Ensino Fundamental – Anos Finais 57.2 2010\n", + "1 0 Brasil Ensino Fundamental – Anos Iniciais 67.5 2010\n", + "2 0 Brasil Ensino Médio Regular 56.4 2010\n", + "0 0 Brasil Ensino Fundamental – Anos Finais 58.5 2011\n", + "1 0 Brasil Ensino Fundamental – Anos Iniciais 66.5 2011\n", + "2 0 Brasil Ensino Médio Regular 56.1 2011\n", + "0 0 Brasil Ensino Fundamental – Anos Finais 58.9 2012\n", + "1 0 Brasil Ensino Fundamental – Anos Iniciais 64.4 2012\n", + "2 0 Brasil Ensino Médio Regular 55.3 2012\n", + "0 0 Brasil Ensino Fundamental – Anos Finais 59.3 2013\n", + "1 0 Brasil Ensino Fundamental – Anos Iniciais 61.8 2013\n", + "2 0 Brasil Ensino Médio Regular 55.4 2013\n", + "0 0 Brasil Ensino Fundamental – Anos Finais 59.6 2014\n", + "1 0 Brasil Ensino Fundamental – Anos Iniciais 58.7 2014\n", + "2 0 Brasil Ensino Médio Regular 54.5 2014\n", + "0 0 Brasil Ensino Fundamental – Anos Finais 59.2 2015\n", + "1 0 Brasil Ensino Fundamental – Anos Iniciais 55.8 2015\n", + "2 0 Brasil Ensino Médio Regular 53.7 2015\n", + "0 0 Brasil Ensino Fundamental – Anos Finais 58.2 2016\n", + "1 0 Brasil Ensino Fundamental – Anos Iniciais 53.5 2016\n", + "2 0 Brasil Ensino Médio Regular 53.9 2016\n", + "0 0 Brasil Ensino Fundamental – Anos Finais 56.8 2017\n", + "1 0 Brasil Ensino Fundamental – Anos Iniciais 51.4 2017\n", + "2 0 Brasil Ensino Médio Regular 53.1 2017\n", + "0 0 Brasil Ensino Fundamental – Anos Finais 55.0 2018\n", + "1 0 Brasil Ensino Fundamental – Anos Iniciais 48.4 2018\n", + "2 0 Brasil Ensino Médio Regular 53.2 2018\n", + "0 0 Brasil Ensino Fundamental – Anos Finais 53.3 2019\n", + "1 0 Brasil Ensino Fundamental – Anos Iniciais 44.9 2019\n", + "2 0 Brasil Ensino Médio Regular 51.1 2019\n", + "0 0 Brasil Ensino Fundamental – Anos Finais 51.6 2020\n", + "1 0 Brasil Ensino Fundamental – Anos Iniciais 41.7 2020\n", + "2 0 Brasil Ensino Médio Regular 50.3 2020\n", + "0 0 Brasil Ensino Fundamental – Anos Finais 49.5 2021\n", + "1 0 Brasil Ensino Fundamental – Anos Iniciais 36.6 2021\n", + "2 0 Brasil Ensino Médio Regular 48.3 2021" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "melted_dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([11, 12, 13, 14, 15, 16, 17, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31,\n", + " 32, 33, 35, 41, 42, 43, 50, 51, 52, 53], dtype=object)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "melted_dataframe['id_uf'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "melted_dataframe = melted_dataframe.drop(\n", + " columns=['id_uf', 'nome']\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "melted_dataframe = melted_dataframe[\n", + " [\n", + " \"ano\",\n", + " \"etapa_ensino\",\n", + " \"tdi\",\n", + " ]\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
anoetapa_ensinotdi
02007Ensino Fundamental – Anos Finais60.6
12007Ensino Fundamental – Anos Iniciais72.2
22007Ensino Médio Regular65.3
02008Ensino Fundamental – Anos Finais54.5
12008Ensino Fundamental – Anos Iniciais66.5
22008Ensino Médio Regular57.3
02009Ensino Fundamental – Anos Finais54.8
12009Ensino Fundamental – Anos Iniciais68.4
22009Ensino Médio Regular56.0
02010Ensino Fundamental – Anos Finais57.2
12010Ensino Fundamental – Anos Iniciais67.5
22010Ensino Médio Regular56.4
02011Ensino Fundamental – Anos Finais58.5
12011Ensino Fundamental – Anos Iniciais66.5
22011Ensino Médio Regular56.1
02012Ensino Fundamental – Anos Finais58.9
12012Ensino Fundamental – Anos Iniciais64.4
22012Ensino Médio Regular55.3
02013Ensino Fundamental – Anos Finais59.3
12013Ensino Fundamental – Anos Iniciais61.8
22013Ensino Médio Regular55.4
02014Ensino Fundamental – Anos Finais59.6
12014Ensino Fundamental – Anos Iniciais58.7
22014Ensino Médio Regular54.5
02015Ensino Fundamental – Anos Finais59.2
12015Ensino Fundamental – Anos Iniciais55.8
22015Ensino Médio Regular53.7
02016Ensino Fundamental – Anos Finais58.2
12016Ensino Fundamental – Anos Iniciais53.5
22016Ensino Médio Regular53.9
02017Ensino Fundamental – Anos Finais56.8
12017Ensino Fundamental – Anos Iniciais51.4
22017Ensino Médio Regular53.1
02018Ensino Fundamental – Anos Finais55.0
12018Ensino Fundamental – Anos Iniciais48.4
22018Ensino Médio Regular53.2
02019Ensino Fundamental – Anos Finais53.3
12019Ensino Fundamental – Anos Iniciais44.9
22019Ensino Médio Regular51.1
02020Ensino Fundamental – Anos Finais51.6
12020Ensino Fundamental – Anos Iniciais41.7
22020Ensino Médio Regular50.3
02021Ensino Fundamental – Anos Finais49.5
12021Ensino Fundamental – Anos Iniciais36.6
22021Ensino Médio Regular48.3
\n", + "
" + ], + "text/plain": [ + " ano etapa_ensino tdi\n", + "0 2007 Ensino Fundamental – Anos Finais 60.6\n", + "1 2007 Ensino Fundamental – Anos Iniciais 72.2\n", + "2 2007 Ensino Médio Regular 65.3\n", + "0 2008 Ensino Fundamental – Anos Finais 54.5\n", + "1 2008 Ensino Fundamental – Anos Iniciais 66.5\n", + "2 2008 Ensino Médio Regular 57.3\n", + "0 2009 Ensino Fundamental – Anos Finais 54.8\n", + "1 2009 Ensino Fundamental – Anos Iniciais 68.4\n", + "2 2009 Ensino Médio Regular 56.0\n", + "0 2010 Ensino Fundamental – Anos Finais 57.2\n", + "1 2010 Ensino Fundamental – Anos Iniciais 67.5\n", + "2 2010 Ensino Médio Regular 56.4\n", + "0 2011 Ensino Fundamental – Anos Finais 58.5\n", + "1 2011 Ensino Fundamental – Anos Iniciais 66.5\n", + "2 2011 Ensino Médio Regular 56.1\n", + "0 2012 Ensino Fundamental – Anos Finais 58.9\n", + "1 2012 Ensino Fundamental – Anos Iniciais 64.4\n", + "2 2012 Ensino Médio Regular 55.3\n", + "0 2013 Ensino Fundamental – Anos Finais 59.3\n", + "1 2013 Ensino Fundamental – Anos Iniciais 61.8\n", + "2 2013 Ensino Médio Regular 55.4\n", + "0 2014 Ensino Fundamental – Anos Finais 59.6\n", + "1 2014 Ensino Fundamental – Anos Iniciais 58.7\n", + "2 2014 Ensino Médio Regular 54.5\n", + "0 2015 Ensino Fundamental – Anos Finais 59.2\n", + "1 2015 Ensino Fundamental – Anos Iniciais 55.8\n", + "2 2015 Ensino Médio Regular 53.7\n", + "0 2016 Ensino Fundamental – Anos Finais 58.2\n", + "1 2016 Ensino Fundamental – Anos Iniciais 53.5\n", + "2 2016 Ensino Médio Regular 53.9\n", + "0 2017 Ensino Fundamental – Anos Finais 56.8\n", + "1 2017 Ensino Fundamental – Anos Iniciais 51.4\n", + "2 2017 Ensino Médio Regular 53.1\n", + "0 2018 Ensino Fundamental – Anos Finais 55.0\n", + "1 2018 Ensino Fundamental – Anos Iniciais 48.4\n", + "2 2018 Ensino Médio Regular 53.2\n", + "0 2019 Ensino Fundamental – Anos Finais 53.3\n", + "1 2019 Ensino Fundamental – Anos Iniciais 44.9\n", + "2 2019 Ensino Médio Regular 51.1\n", + "0 2020 Ensino Fundamental – Anos Finais 51.6\n", + "1 2020 Ensino Fundamental – Anos Iniciais 41.7\n", + "2 2020 Ensino Médio Regular 50.3\n", + "0 2021 Ensino Fundamental – Anos Finais 49.5\n", + "1 2021 Ensino Fundamental – Anos Iniciais 36.6\n", + "2 2021 Ensino Médio Regular 48.3" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "melted_dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "path = os.path.join(\n", + " OUTPUT, \"educacao_especial_brasil_distorcao_idade_serie\"\n", + " )\n", + "\n", + "os.makedirs(path, exist_ok=True)\n", + "melted_dataframe.astype(str).to_csv(os.path.join(path, \"data.csv\"), index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.17" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/models/br_inep_educacao_especial/code/educacao_especial_brasil_taxa_rendimento.ipynb b/models/br_inep_educacao_especial/code/educacao_especial_brasil_taxa_rendimento.ipynb new file mode 100644 index 00000000..ca3a594c --- /dev/null +++ b/models/br_inep_educacao_especial/code/educacao_especial_brasil_taxa_rendimento.ipynb @@ -0,0 +1,1661 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import zipfile\n", + "import pandas as pd\n", + "import basedosdados as bd\n", + "\n", + "INPUT = os.path.join(os.getcwd(), \"input\")\n", + "OUTPUT = os.path.join(os.getcwd(), \"output\")\n", + "\n", + "os.makedirs(INPUT, exist_ok=True)\n", + "os.makedirs(OUTPUT, exist_ok=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def read_sheet(sheet_name: str, skiprows: int = 8) -> pd.DataFrame:\n", + " return pd.read_excel(\n", + " os.path.join(\n", + " INPUT,\n", + " \"tx_rend_brasil_regioes_ufs_esp.xlsx\"\n", + " ),\n", + " skiprows=skiprows,\n", + " sheet_name=sheet_name\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "excel_data = pd.ExcelFile(os.path.join(\n", + " INPUT,\n", + " \"tx_rend_brasil_regioes_ufs_esp.xlsx\"\n", + " ))\n", + "\n", + "# Get the sheet names\n", + "sheet_names = excel_data.sheet_names" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "dfs = {\n", + " sheet_name: read_sheet(sheet_name)\n", + " for sheet_name in sheet_names\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'BRASIL_REGIOES_UFS ': NU_ANO_CENSO UNIDGEO \\\n", + " 0 2007 Brasil \n", + " 1 2007 Norte \n", + " 2 2007 Nordeste \n", + " 3 2007 Sudeste \n", + " 4 2007 Sul \n", + " .. ... ... \n", + " 492 2021 Mato Grosso \n", + " 493 2021 Goiás \n", + " 494 2021 Distrito Federal \n", + " 495 NaN NaN \n", + " 496 Fonte: Censo da Educação Básica 2021/INEP. NaN \n", + " \n", + " NO_CATEGORIA NO_DEPENDENCIA 1_CAT_FUN 1_CAT_FUN_AI 1_CAT_FUN_AF \\\n", + " 0 Total Total 73.1 71.6 78.7 \n", + " 1 Total Total 63.2 61.4 75.5 \n", + " 2 Total Total 67.0 65.7 73.0 \n", + " 3 Total Total 77.0 75.6 81.5 \n", + " 4 Total Total 76.8 76.4 78.1 \n", + " .. ... ... ... ... ... \n", + " 492 Total Total 96.3 96.2 96.4 \n", + " 493 Total Total 96.5 95.2 97.6 \n", + " 494 Total Total 89.1 83.1 95.7 \n", + " 495 NaN NaN NaN NaN NaN \n", + " 496 NaN NaN NaN NaN NaN \n", + " \n", + " 1_CAT_MED 2_CAT_FUN 2_CAT_FUN_AI 2_CAT_FUN_AF 2_CAT_MED 3_CAT_FUN \\\n", + " 0 79.6 22.1 23.8 16.2 13.0 4.8 \n", + " 1 77.5 28.6 30.4 16.6 11.1 8.2 \n", + " 2 77.0 24.7 26.2 17.9 11.3 8.3 \n", + " 3 79.6 19.9 21.4 14.7 14.9 3.1 \n", + " 4 81.4 20.4 21.0 18.3 11.5 2.8 \n", + " .. ... ... ... ... ... ... \n", + " 492 81.9 3.1 3.4 2.7 13.4 0.6 \n", + " 493 97.8 2.8 4.2 1.6 1.3 0.7 \n", + " 494 92.2 10.6 16.4 4.1 7.3 0.3 \n", + " 495 NaN NaN NaN NaN NaN NaN \n", + " 496 NaN NaN NaN NaN NaN NaN \n", + " \n", + " 3_CAT_FUN_AI 3_CAT_FUN_AF 3_CAT_MED \n", + " 0 4.6 5.1 7.4 \n", + " 1 8.2 7.9 11.4 \n", + " 2 8.1 9.1 11.7 \n", + " 3 3.0 3.8 5.5 \n", + " 4 2.6 3.6 7.1 \n", + " .. ... ... ... \n", + " 492 0.4 0.9 4.7 \n", + " 493 0.6 0.8 0.9 \n", + " 494 0.5 0.2 0.5 \n", + " 495 NaN NaN NaN \n", + " 496 NaN NaN NaN \n", + " \n", + " [497 rows x 16 columns]}" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dfs" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sheet: BRASIL_REGIOES_UFS \n", + "Index(['NU_ANO_CENSO', 'UNIDGEO', 'NO_CATEGORIA', 'NO_DEPENDENCIA',\n", + " '1_CAT_FUN', '1_CAT_FUN_AI', '1_CAT_FUN_AF', '1_CAT_MED', '2_CAT_FUN',\n", + " '2_CAT_FUN_AI', '2_CAT_FUN_AF', '2_CAT_MED', '3_CAT_FUN',\n", + " '3_CAT_FUN_AI', '3_CAT_FUN_AF', '3_CAT_MED'],\n", + " dtype='object')\n", + "\n" + ] + } + ], + "source": [ + "for sheet_name, df in dfs.items():\n", + " print(f\"Sheet: {sheet_name}\")\n", + " print(df.columns) # This will print the column names of each DataFrame\n", + " print() # Adds a blank line for readability\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "RENAME_COLUMNS = {\n", + " 'NU_ANO_CENSO':'ano', \n", + " 'UNIDGEO':'nome_uf',\n", + " '1_CAT_FUN_AI':'taxaaprovacao_anosiniciais', \n", + " '1_CAT_FUN_AF':'taxaaprovacao_anosfinais', \n", + " '1_CAT_MED':'taxaaprovacao_ensinomedio', \n", + " '2_CAT_FUN_AI':'taxareprovacao_anosiniciais', \n", + " '2_CAT_FUN_AF':'taxareprovacao_anosfinais', \n", + " '2_CAT_MED':'taxareprovacao_ensinomedio', \n", + " '3_CAT_FUN_AI':'taxaabandono_anosiniciais', \n", + " '3_CAT_FUN_AF':'taxaabandono_anosfinais', \n", + " '3_CAT_MED' : 'taxaabandono_ensinomedio' \n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def drop_unused_columns(df: pd.DataFrame) -> pd.DataFrame:\n", + " cols_drop = [\n", + " col\n", + " for col in df.columns\n", + " if col.startswith(\"NO_\") \n", + " or col.startswith(\"1_\") \n", + " or col.startswith(\"2_\") \n", + " or col.startswith(\"3_\")\n", + " ]\n", + "\n", + " return df.drop(columns=cols_drop)\n", + "\n", + "dfs = {\n", + " name: drop_unused_columns(\n", + " df.rename(columns=RENAME_COLUMNS, errors=\"raise\")\n", + " )\n", + " for name, df in dfs.items()\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'BRASIL_REGIOES_UFS ': ano nome_uf \\\n", + " 0 2007 Brasil \n", + " 1 2007 Norte \n", + " 2 2007 Nordeste \n", + " 3 2007 Sudeste \n", + " 4 2007 Sul \n", + " .. ... ... \n", + " 492 2021 Mato Grosso \n", + " 493 2021 Goiás \n", + " 494 2021 Distrito Federal \n", + " 495 NaN NaN \n", + " 496 Fonte: Censo da Educação Básica 2021/INEP. NaN \n", + " \n", + " taxaaprovacao_anosiniciais taxaaprovacao_anosfinais \\\n", + " 0 71.6 78.7 \n", + " 1 61.4 75.5 \n", + " 2 65.7 73.0 \n", + " 3 75.6 81.5 \n", + " 4 76.4 78.1 \n", + " .. ... ... \n", + " 492 96.2 96.4 \n", + " 493 95.2 97.6 \n", + " 494 83.1 95.7 \n", + " 495 NaN NaN \n", + " 496 NaN NaN \n", + " \n", + " taxaaprovacao_ensinomedio taxareprovacao_anosiniciais \\\n", + " 0 79.6 23.8 \n", + " 1 77.5 30.4 \n", + " 2 77.0 26.2 \n", + " 3 79.6 21.4 \n", + " 4 81.4 21.0 \n", + " .. ... ... \n", + " 492 81.9 3.4 \n", + " 493 97.8 4.2 \n", + " 494 92.2 16.4 \n", + " 495 NaN NaN \n", + " 496 NaN NaN \n", + " \n", + " taxareprovacao_anosfinais taxareprovacao_ensinomedio \\\n", + " 0 16.2 13.0 \n", + " 1 16.6 11.1 \n", + " 2 17.9 11.3 \n", + " 3 14.7 14.9 \n", + " 4 18.3 11.5 \n", + " .. ... ... \n", + " 492 2.7 13.4 \n", + " 493 1.6 1.3 \n", + " 494 4.1 7.3 \n", + " 495 NaN NaN \n", + " 496 NaN NaN \n", + " \n", + " taxaabandono_anosiniciais taxaabandono_anosfinais \\\n", + " 0 4.6 5.1 \n", + " 1 8.2 7.9 \n", + " 2 8.1 9.1 \n", + " 3 3.0 3.8 \n", + " 4 2.6 3.6 \n", + " .. ... ... \n", + " 492 0.4 0.9 \n", + " 493 0.6 0.8 \n", + " 494 0.5 0.2 \n", + " 495 NaN NaN \n", + " 496 NaN NaN \n", + " \n", + " taxaabandono_ensinomedio \n", + " 0 7.4 \n", + " 1 11.4 \n", + " 2 11.7 \n", + " 3 5.5 \n", + " 4 7.1 \n", + " .. ... \n", + " 492 4.7 \n", + " 493 0.9 \n", + " 494 0.5 \n", + " 495 NaN \n", + " 496 NaN \n", + " \n", + " [497 rows x 11 columns]}" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dfs" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Sheet: BRASIL_REGIOES_UFS \n", + "Index(['ano', 'nome_uf', 'taxaaprovacao_anosiniciais',\n", + " 'taxaaprovacao_anosfinais', 'taxaaprovacao_ensinomedio',\n", + " 'taxareprovacao_anosiniciais', 'taxareprovacao_anosfinais',\n", + " 'taxareprovacao_ensinomedio', 'taxaabandono_anosiniciais',\n", + " 'taxaabandono_anosfinais', 'taxaabandono_ensinomedio'],\n", + " dtype='object')\n", + "\n" + ] + } + ], + "source": [ + "for sheet_name, df in dfs.items():\n", + " print(f\"Sheet: {sheet_name}\")\n", + " print(df.columns) # This will print the column names of each DataFrame\n", + " print() # Adds a blank line for readability" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "melted_dataframe = pd.concat(\n", + " [\n", + " df.pipe(\n", + " lambda d: d.loc[(d[\"nome_uf\"] == 'Brasil' )]\n", + " )\n", + " .pipe(\n", + " lambda d: pd.melt(\n", + " d,\n", + " id_vars=[\"ano\", \"nome_uf\"],\n", + " value_vars=d.columns.difference([\"ano\", \"nome_uf\"]).tolist(), # Convert to list\n", + " var_name=\"metrica\",\n", + " value_name=\"valor\",\n", + " )\n", + " )\n", + " ]\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
anonome_ufmetricavalor
02007Brasiltaxaabandono_anosfinais5.1
12008Brasiltaxaabandono_anosfinais5.0
22009Brasiltaxaabandono_anosfinais4.3
32010Brasiltaxaabandono_anosfinais4.6
42011Brasiltaxaabandono_anosfinais4.6
...............
1302017Brasiltaxareprovacao_ensinomedio11.2
1312018Brasiltaxareprovacao_ensinomedio11.4
1322019Brasiltaxareprovacao_ensinomedio9.4
1332020Brasiltaxareprovacao_ensinomedio2.2
1342021Brasiltaxareprovacao_ensinomedio3.8
\n", + "

135 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " ano nome_uf metrica valor\n", + "0 2007 Brasil taxaabandono_anosfinais 5.1\n", + "1 2008 Brasil taxaabandono_anosfinais 5.0\n", + "2 2009 Brasil taxaabandono_anosfinais 4.3\n", + "3 2010 Brasil taxaabandono_anosfinais 4.6\n", + "4 2011 Brasil taxaabandono_anosfinais 4.6\n", + ".. ... ... ... ...\n", + "130 2017 Brasil taxareprovacao_ensinomedio 11.2\n", + "131 2018 Brasil taxareprovacao_ensinomedio 11.4\n", + "132 2019 Brasil taxareprovacao_ensinomedio 9.4\n", + "133 2020 Brasil taxareprovacao_ensinomedio 2.2\n", + "134 2021 Brasil taxareprovacao_ensinomedio 3.8\n", + "\n", + "[135 rows x 4 columns]" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "melted_dataframe" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "melted_dataframe['etapa_ensino'] = melted_dataframe['metrica'].apply(\n", + " lambda v: v.split('_')[-1]) # Extracts 'anosiniciais', 'anosfinais', or 'ensinomedio'\n", + "melted_dataframe['tipo_metrica'] = melted_dataframe['metrica'].apply(\n", + " lambda v: v.split('_')[0]) # Extracts 'taxaaprovacao', 'taxareprovacao', 'taxaabandono'\n", + "\n", + "# Pivoting the melted DataFrame to get desired columns\n", + "df_final = melted_dataframe.pivot_table(index=['ano', 'nome_uf', 'etapa_ensino'], \n", + " columns='tipo_metrica', \n", + " values='valor').reset_index()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "RENAME_COLUMNS_MELTED = {\n", + " 'taxaabandono':'taxa_abandono', \n", + " 'taxaaprovacao':'taxa_aprovacao',\n", + " 'taxareprovacao':'taxa_reprovacao' \n", + "}\n", + "\n", + "etapa_ensino = {\n", + " 'anosiniciais': 'Ensino Fundamental – Anos Iniciais',\n", + " 'anosfinais':'Ensino Fundamental – Anos Finais',\n", + " 'ensinomedio':'Ensino Médio Regular'\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
tipo_metricaanonome_ufetapa_ensinotaxaabandonotaxaaprovacaotaxareprovacao
02007Brasilanosfinais5.178.716.2
12007Brasilanosiniciais4.671.623.8
22007Brasilensinomedio7.479.613.0
32008Brasilanosfinais5.078.816.2
42008Brasilanosiniciais4.572.423.1
52008Brasilensinomedio7.879.312.9
62009Brasilanosfinais4.381.514.2
72009Brasilanosiniciais3.374.422.3
82009Brasilensinomedio7.080.013.0
92010Brasilanosfinais4.681.114.3
102010Brasilanosiniciais3.373.723.0
112010Brasilensinomedio7.479.413.2
122011Brasilanosfinais4.680.415.0
132011Brasilanosiniciais3.374.522.2
142011Brasilensinomedio7.179.413.5
152012Brasilanosfinais4.780.215.1
162012Brasilanosiniciais3.373.123.6
172012Brasilensinomedio7.180.112.8
182013Brasilanosfinais4.481.713.9
192013Brasilanosiniciais2.975.221.9
202013Brasilensinomedio6.881.711.5
212014Brasilanosfinais4.480.914.7
222014Brasilanosiniciais2.973.723.4
232014Brasilensinomedio6.182.011.9
242015Brasilanosfinais4.381.014.7
252015Brasilanosiniciais2.774.522.8
262015Brasilensinomedio6.282.311.5
272016Brasilanosfinais4.480.515.1
282016Brasilanosiniciais2.774.622.7
292016Brasilensinomedio5.782.511.8
302017Brasilanosfinais4.182.413.5
312017Brasilanosiniciais2.476.720.9
322017Brasilensinomedio6.082.811.2
332018Brasilanosfinais3.883.213.0
342018Brasilanosiniciais2.278.219.6
352018Brasilensinomedio6.182.511.4
362019Brasilanosfinais2.986.210.9
372019Brasilanosiniciais1.781.416.9
382019Brasilensinomedio4.586.19.4
392020Brasilanosfinais1.697.01.4
402020Brasilanosiniciais1.290.88.0
412020Brasilensinomedio2.695.22.2
422021Brasilanosfinais2.594.13.4
432021Brasilanosiniciais1.487.910.7
442021Brasilensinomedio4.591.73.8
\n", + "
" + ], + "text/plain": [ + "tipo_metrica ano nome_uf etapa_ensino taxaabandono taxaaprovacao \\\n", + "0 2007 Brasil anosfinais 5.1 78.7 \n", + "1 2007 Brasil anosiniciais 4.6 71.6 \n", + "2 2007 Brasil ensinomedio 7.4 79.6 \n", + "3 2008 Brasil anosfinais 5.0 78.8 \n", + "4 2008 Brasil anosiniciais 4.5 72.4 \n", + "5 2008 Brasil ensinomedio 7.8 79.3 \n", + "6 2009 Brasil anosfinais 4.3 81.5 \n", + "7 2009 Brasil anosiniciais 3.3 74.4 \n", + "8 2009 Brasil ensinomedio 7.0 80.0 \n", + "9 2010 Brasil anosfinais 4.6 81.1 \n", + "10 2010 Brasil anosiniciais 3.3 73.7 \n", + "11 2010 Brasil ensinomedio 7.4 79.4 \n", + "12 2011 Brasil anosfinais 4.6 80.4 \n", + "13 2011 Brasil anosiniciais 3.3 74.5 \n", + "14 2011 Brasil ensinomedio 7.1 79.4 \n", + "15 2012 Brasil anosfinais 4.7 80.2 \n", + "16 2012 Brasil anosiniciais 3.3 73.1 \n", + "17 2012 Brasil ensinomedio 7.1 80.1 \n", + "18 2013 Brasil anosfinais 4.4 81.7 \n", + "19 2013 Brasil anosiniciais 2.9 75.2 \n", + "20 2013 Brasil ensinomedio 6.8 81.7 \n", + "21 2014 Brasil anosfinais 4.4 80.9 \n", + "22 2014 Brasil anosiniciais 2.9 73.7 \n", + "23 2014 Brasil ensinomedio 6.1 82.0 \n", + "24 2015 Brasil anosfinais 4.3 81.0 \n", + "25 2015 Brasil anosiniciais 2.7 74.5 \n", + "26 2015 Brasil ensinomedio 6.2 82.3 \n", + "27 2016 Brasil anosfinais 4.4 80.5 \n", + "28 2016 Brasil anosiniciais 2.7 74.6 \n", + "29 2016 Brasil ensinomedio 5.7 82.5 \n", + "30 2017 Brasil anosfinais 4.1 82.4 \n", + "31 2017 Brasil anosiniciais 2.4 76.7 \n", + "32 2017 Brasil ensinomedio 6.0 82.8 \n", + "33 2018 Brasil anosfinais 3.8 83.2 \n", + "34 2018 Brasil anosiniciais 2.2 78.2 \n", + "35 2018 Brasil ensinomedio 6.1 82.5 \n", + "36 2019 Brasil anosfinais 2.9 86.2 \n", + "37 2019 Brasil anosiniciais 1.7 81.4 \n", + "38 2019 Brasil ensinomedio 4.5 86.1 \n", + "39 2020 Brasil anosfinais 1.6 97.0 \n", + "40 2020 Brasil anosiniciais 1.2 90.8 \n", + "41 2020 Brasil ensinomedio 2.6 95.2 \n", + "42 2021 Brasil anosfinais 2.5 94.1 \n", + "43 2021 Brasil anosiniciais 1.4 87.9 \n", + "44 2021 Brasil ensinomedio 4.5 91.7 \n", + "\n", + "tipo_metrica taxareprovacao \n", + "0 16.2 \n", + "1 23.8 \n", + "2 13.0 \n", + "3 16.2 \n", + "4 23.1 \n", + "5 12.9 \n", + "6 14.2 \n", + "7 22.3 \n", + "8 13.0 \n", + "9 14.3 \n", + "10 23.0 \n", + "11 13.2 \n", + "12 15.0 \n", + "13 22.2 \n", + "14 13.5 \n", + "15 15.1 \n", + "16 23.6 \n", + "17 12.8 \n", + "18 13.9 \n", + "19 21.9 \n", + "20 11.5 \n", + "21 14.7 \n", + "22 23.4 \n", + "23 11.9 \n", + "24 14.7 \n", + "25 22.8 \n", + "26 11.5 \n", + "27 15.1 \n", + "28 22.7 \n", + "29 11.8 \n", + "30 13.5 \n", + "31 20.9 \n", + "32 11.2 \n", + "33 13.0 \n", + "34 19.6 \n", + "35 11.4 \n", + "36 10.9 \n", + "37 16.9 \n", + "38 9.4 \n", + "39 1.4 \n", + "40 8.0 \n", + "41 2.2 \n", + "42 3.4 \n", + "43 10.7 \n", + "44 3.8 " + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_final" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "df_final = df_final.rename(columns=RENAME_COLUMNS_MELTED)\n", + "df_final['etapa_ensino'] = df_final['etapa_ensino'].replace(etapa_ensino)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "# Rename the 'sigla' column to 'sigla_uf' and drop the 'nome' column\n", + "df_final = df_final.drop(columns=['nome_uf'])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "df_final = df_final[['ano', 'etapa_ensino', 'taxa_aprovacao','taxa_reprovacao','taxa_abandono']]" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
tipo_metricaanoetapa_ensinotaxa_aprovacaotaxa_reprovacaotaxa_abandono
02007Ensino Fundamental – Anos Finais78.716.25.1
12007Ensino Fundamental – Anos Iniciais71.623.84.6
22007Ensino Médio Regular79.613.07.4
32008Ensino Fundamental – Anos Finais78.816.25.0
42008Ensino Fundamental – Anos Iniciais72.423.14.5
52008Ensino Médio Regular79.312.97.8
62009Ensino Fundamental – Anos Finais81.514.24.3
72009Ensino Fundamental – Anos Iniciais74.422.33.3
82009Ensino Médio Regular80.013.07.0
92010Ensino Fundamental – Anos Finais81.114.34.6
102010Ensino Fundamental – Anos Iniciais73.723.03.3
112010Ensino Médio Regular79.413.27.4
122011Ensino Fundamental – Anos Finais80.415.04.6
132011Ensino Fundamental – Anos Iniciais74.522.23.3
142011Ensino Médio Regular79.413.57.1
152012Ensino Fundamental – Anos Finais80.215.14.7
162012Ensino Fundamental – Anos Iniciais73.123.63.3
172012Ensino Médio Regular80.112.87.1
182013Ensino Fundamental – Anos Finais81.713.94.4
192013Ensino Fundamental – Anos Iniciais75.221.92.9
202013Ensino Médio Regular81.711.56.8
212014Ensino Fundamental – Anos Finais80.914.74.4
222014Ensino Fundamental – Anos Iniciais73.723.42.9
232014Ensino Médio Regular82.011.96.1
242015Ensino Fundamental – Anos Finais81.014.74.3
252015Ensino Fundamental – Anos Iniciais74.522.82.7
262015Ensino Médio Regular82.311.56.2
272016Ensino Fundamental – Anos Finais80.515.14.4
282016Ensino Fundamental – Anos Iniciais74.622.72.7
292016Ensino Médio Regular82.511.85.7
302017Ensino Fundamental – Anos Finais82.413.54.1
312017Ensino Fundamental – Anos Iniciais76.720.92.4
322017Ensino Médio Regular82.811.26.0
332018Ensino Fundamental – Anos Finais83.213.03.8
342018Ensino Fundamental – Anos Iniciais78.219.62.2
352018Ensino Médio Regular82.511.46.1
362019Ensino Fundamental – Anos Finais86.210.92.9
372019Ensino Fundamental – Anos Iniciais81.416.91.7
382019Ensino Médio Regular86.19.44.5
392020Ensino Fundamental – Anos Finais97.01.41.6
402020Ensino Fundamental – Anos Iniciais90.88.01.2
412020Ensino Médio Regular95.22.22.6
422021Ensino Fundamental – Anos Finais94.13.42.5
432021Ensino Fundamental – Anos Iniciais87.910.71.4
442021Ensino Médio Regular91.73.84.5
\n", + "
" + ], + "text/plain": [ + "tipo_metrica ano etapa_ensino taxa_aprovacao \\\n", + "0 2007 Ensino Fundamental – Anos Finais 78.7 \n", + "1 2007 Ensino Fundamental – Anos Iniciais 71.6 \n", + "2 2007 Ensino Médio Regular 79.6 \n", + "3 2008 Ensino Fundamental – Anos Finais 78.8 \n", + "4 2008 Ensino Fundamental – Anos Iniciais 72.4 \n", + "5 2008 Ensino Médio Regular 79.3 \n", + "6 2009 Ensino Fundamental – Anos Finais 81.5 \n", + "7 2009 Ensino Fundamental – Anos Iniciais 74.4 \n", + "8 2009 Ensino Médio Regular 80.0 \n", + "9 2010 Ensino Fundamental – Anos Finais 81.1 \n", + "10 2010 Ensino Fundamental – Anos Iniciais 73.7 \n", + "11 2010 Ensino Médio Regular 79.4 \n", + "12 2011 Ensino Fundamental – Anos Finais 80.4 \n", + "13 2011 Ensino Fundamental – Anos Iniciais 74.5 \n", + "14 2011 Ensino Médio Regular 79.4 \n", + "15 2012 Ensino Fundamental – Anos Finais 80.2 \n", + "16 2012 Ensino Fundamental – Anos Iniciais 73.1 \n", + "17 2012 Ensino Médio Regular 80.1 \n", + "18 2013 Ensino Fundamental – Anos Finais 81.7 \n", + "19 2013 Ensino Fundamental – Anos Iniciais 75.2 \n", + "20 2013 Ensino Médio Regular 81.7 \n", + "21 2014 Ensino Fundamental – Anos Finais 80.9 \n", + "22 2014 Ensino Fundamental – Anos Iniciais 73.7 \n", + "23 2014 Ensino Médio Regular 82.0 \n", + "24 2015 Ensino Fundamental – Anos Finais 81.0 \n", + "25 2015 Ensino Fundamental – Anos Iniciais 74.5 \n", + "26 2015 Ensino Médio Regular 82.3 \n", + "27 2016 Ensino Fundamental – Anos Finais 80.5 \n", + "28 2016 Ensino Fundamental – Anos Iniciais 74.6 \n", + "29 2016 Ensino Médio Regular 82.5 \n", + "30 2017 Ensino Fundamental – Anos Finais 82.4 \n", + "31 2017 Ensino Fundamental – Anos Iniciais 76.7 \n", + "32 2017 Ensino Médio Regular 82.8 \n", + "33 2018 Ensino Fundamental – Anos Finais 83.2 \n", + "34 2018 Ensino Fundamental – Anos Iniciais 78.2 \n", + "35 2018 Ensino Médio Regular 82.5 \n", + "36 2019 Ensino Fundamental – Anos Finais 86.2 \n", + "37 2019 Ensino Fundamental – Anos Iniciais 81.4 \n", + "38 2019 Ensino Médio Regular 86.1 \n", + "39 2020 Ensino Fundamental – Anos Finais 97.0 \n", + "40 2020 Ensino Fundamental – Anos Iniciais 90.8 \n", + "41 2020 Ensino Médio Regular 95.2 \n", + "42 2021 Ensino Fundamental – Anos Finais 94.1 \n", + "43 2021 Ensino Fundamental – Anos Iniciais 87.9 \n", + "44 2021 Ensino Médio Regular 91.7 \n", + "\n", + "tipo_metrica taxa_reprovacao taxa_abandono \n", + "0 16.2 5.1 \n", + "1 23.8 4.6 \n", + "2 13.0 7.4 \n", + "3 16.2 5.0 \n", + "4 23.1 4.5 \n", + "5 12.9 7.8 \n", + "6 14.2 4.3 \n", + "7 22.3 3.3 \n", + "8 13.0 7.0 \n", + "9 14.3 4.6 \n", + "10 23.0 3.3 \n", + "11 13.2 7.4 \n", + "12 15.0 4.6 \n", + "13 22.2 3.3 \n", + "14 13.5 7.1 \n", + "15 15.1 4.7 \n", + "16 23.6 3.3 \n", + "17 12.8 7.1 \n", + "18 13.9 4.4 \n", + "19 21.9 2.9 \n", + "20 11.5 6.8 \n", + "21 14.7 4.4 \n", + "22 23.4 2.9 \n", + "23 11.9 6.1 \n", + "24 14.7 4.3 \n", + "25 22.8 2.7 \n", + "26 11.5 6.2 \n", + "27 15.1 4.4 \n", + "28 22.7 2.7 \n", + "29 11.8 5.7 \n", + "30 13.5 4.1 \n", + "31 20.9 2.4 \n", + "32 11.2 6.0 \n", + "33 13.0 3.8 \n", + "34 19.6 2.2 \n", + "35 11.4 6.1 \n", + "36 10.9 2.9 \n", + "37 16.9 1.7 \n", + "38 9.4 4.5 \n", + "39 1.4 1.6 \n", + "40 8.0 1.2 \n", + "41 2.2 2.6 \n", + "42 3.4 2.5 \n", + "43 10.7 1.4 \n", + "44 3.8 4.5 " + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_final" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "path = os.path.join(\n", + " OUTPUT, \"educacao_especial_brasil_taxa_rendimento\"\n", + " )\n", + "\n", + "os.makedirs(path, exist_ok=True)\n", + "df_final.astype(str).to_csv(os.path.join(path, \"data.csv\"), index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.17" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/models/br_inep_educacao_especial/code/educacao_especial_aee_docente.ipynb b/models/br_inep_educacao_especial/code/educacao_especial_docente_aee.ipynb similarity index 100% rename from models/br_inep_educacao_especial/code/educacao_especial_aee_docente.ipynb rename to models/br_inep_educacao_especial/code/educacao_especial_docente_aee.ipynb diff --git a/models/br_inep_educacao_especial/code/educacao_especial_formacao_docente.ipynb b/models/br_inep_educacao_especial/code/educacao_especial_docente_formacao.ipynb similarity index 100% rename from models/br_inep_educacao_especial/code/educacao_especial_formacao_docente.ipynb rename to models/br_inep_educacao_especial/code/educacao_especial_docente_formacao.ipynb diff --git a/models/br_inep_educacao_especial/code/educacao_especial_aee_matricula.ipynb b/models/br_inep_educacao_especial/code/educacao_especial_matricula_aee.ipynb similarity index 100% rename from models/br_inep_educacao_especial/code/educacao_especial_aee_matricula.ipynb rename to models/br_inep_educacao_especial/code/educacao_especial_matricula_aee.ipynb diff --git a/models/br_inep_educacao_especial/code/educacao_especial_distorcao_idade_serie.ipynb b/models/br_inep_educacao_especial/code/educacao_especial_uf_distorcao_idade_serie.ipynb similarity index 100% rename from models/br_inep_educacao_especial/code/educacao_especial_distorcao_idade_serie.ipynb rename to models/br_inep_educacao_especial/code/educacao_especial_uf_distorcao_idade_serie.ipynb diff --git a/models/br_inep_educacao_especial/code/educacao_especial_taxa_rendimento.ipynb b/models/br_inep_educacao_especial/code/educacao_especial_uf_taxa_rendimento.ipynb similarity index 100% rename from models/br_inep_educacao_especial/code/educacao_especial_taxa_rendimento.ipynb rename to models/br_inep_educacao_especial/code/educacao_especial_uf_taxa_rendimento.ipynb diff --git a/models/br_inep_educacao_especial/schema copy.yml b/models/br_inep_educacao_especial/schema copy.yml new file mode 100644 index 00000000..cb02eedd --- /dev/null +++ b/models/br_inep_educacao_especial/schema copy.yml @@ -0,0 +1,391 @@ +--- +version: 2 +models: + - name: br_inep_educacao_especial__etapa_ensino + description: Número de alunos matriculados na Educação Especial ao longo do tempo + por tipo de classe (Comuns ou Exclusivas) e Etapa de Ensino + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: tipo_classe + description: Tipo de classe da Educação Especial (e.g. Classes Comuns ou Classes + Exclusivas/Especiais) + - name: etapa_ensino + description: Etapa e/ou Sub-etapas de ensino (e.g. Creche, Pré-escola, Anos + Iniciais, Anos Finais, Ensino Fundamental - EJA, ...) + - name: quantidade_matricula + description: Número de matrículas + - name: br_inep_educacao_especial__faixa_etaria + description: Número de alunos matriculados na Educação Especial ao longo do tempo + por tipo de classe (Comuns ou Exclusivas) e faixa etária + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: tipo_classe + description: Tipo de classe da Educação Especial (e.g. Classes Comuns ou Classes + Exclusivas/Especiais) + - name: faixa_etaria + description: Faixa etária + - name: quantidade_matricula + description: Número de matrículas + - name: br_inep_educacao_especial__localizacao + description: Número de alunos matriculados na Educação Especial ao longo do tempo + por tipo de classe, rede e localização + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: tipo_classe + description: Tipo de classe da Educação Especial (e.g. Classes Comuns ou Classes + Exclusivas/Especiais) + - name: rede + description: Rede Escolar (e.g. Federal, Estadual, Municipal e Privada) + - name: localizacao + description: Localização (e.g. Zona Urbana, Zona Rural) + - name: quantidade_matricula + description: Número de matrículas + - name: br_inep_educacao_especial__sexo_raca_cor + description: Número de alunos matriculados na Educação Especial ao longo do tempo + por tipo de classe, sexo e raça/cor + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: tipo_classe + description: Tipo de classe da Educação Especial (e.g. Classes Comuns ou Classes + Exclusivas/Especiais) + - name: sexo + description: Sexo + - name: raca_cor + description: Raça/Cor + - name: quantidade_matricula + description: Número de matrículas + - name: br_inep_educacao_especial__tempo_ensino + description: Número de alunos matriculados na Educação Especial ao longo do tempo + por tipo de classe, rede e tempo de ensino (Integral ou Parcial) + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: tipo_classe + description: Tipo de classe da Educação Especial (e.g. Classes Comuns ou Classes + Exclusivas/Especiais) + - name: rede + description: Rede Escolar (e.g. Federal, Estadual, Municipal e Privada) + - name: tempo_ensino + description: Classificação em tempo integral e tempo parcial + - name: quantidade_matricula + description: Número de matrículas + - name: br_inep_educacao_especial__tipo_deficiencia + description: Número de alunos matriculados na Educação Especial ao longo do tempo + por tipo de classe e tipo de deficiência, transtorno global do desenvolvimento + ou altas habilidades/superdotação + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: tipo_classe + description: Tipo de classe da Educação Especial (e.g. Classes Comuns ou Classes + Exclusivas/Especiais) + - name: tipo_deficiêcia + description: Tipo de deficiência, transtorno global do desenvolvimento ou + altas habilidades/superdotação + - name: quantidade_matricula + description: Número de matrículas + - name: br_inep_educacao_especial__uf_distorcao_idade_serie + description: 'Taxa de distorção idade-série da Educação Especial por UF. Dados + obtidos via Pedido LAI (nº protocolo: 23546066150202238)' + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: etapa_ensino + description: Etapa e/ou Sub-etapas de ensino (e.g. Creche, Pré-escola, Anos + Iniciais, Anos Finais, Ensino Fundamental - EJA, ...) + - name: tdi + description: Taxa de distorção idade-série + - name: br_inep_educacao_especial__brasil_distorcao_idade_serie + description: 'Taxa de distorção idade-série da Educação Especial no Brasil. Dados + obtidos via Pedido LAI (nº protocolo: 23546066150202238)' + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: etapa_ensino + description: Etapa e/ou Sub-etapas de ensino (e.g. Creche, Pré-escola, Anos + Iniciais, Anos Finais, Ensino Fundamental - EJA, ...) + - name: tdi + description: Taxa de distorção idade-série + - name: br_inep_educacao_especial__uf_taxa_rendimento + description: 'Taxas de rendimento (aprovação, reprovação e abandono) da Educação + Especial por UF. Dados obtidos via Pedido LAI (nº protocolo: 23546054413202266)' + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: etapa_ensino + description: Etapa e/ou Sub-etapas de ensino (e.g. Creche, Pré-escola, Anos + Iniciais, Anos Finais, Ensino Fundamental - EJA, ...) + - name: taxa_aprovacao + description: Taxa de aprovação + - name: taxa_reprovacao + description: Taxa de reprovação + - name: taxa_abandono + description: Taxa de abandono + - name: br_inep_educacao_especial__brasil_taxa_rendimento + description: 'Taxas de rendimento (aprovação, reprovação e abandono) da Educação + Especial no Brasil. Dados obtidos via Pedido LAI (nº protocolo: 23546054413202266)' + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: etapa_ensino + description: Etapa e/ou Sub-etapas de ensino (e.g. Creche, Pré-escola, Anos + Iniciais, Anos Finais, Ensino Fundamental - EJA, ...) + - name: taxa_aprovacao + description: Taxa de aprovação + - name: taxa_reprovacao + description: Taxa de reprovação + - name: taxa_abandono + description: Taxa de abandono + - name: br_inep_educacao_especial__docente_aee + description: 'Quantidade de docentes regentes e do Atendimento Educacional Especializado + (AEE) no total e com Formação Continuada em Educação Especial. Dados obtidos + via Pedido LAI (nº protocolo: 23546035869202316)' + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: quantidade_docente_regente + description: Número de professores regentes + - name: quantidade_docente_aee + description: Número de professores do Atendimento Educacional Especializado + (AEE) + - name: quantidade_docente_regente_formacao_continuada + description: Número de professores regentes com formação continuada sobre + Educação Especial + - name: quantidade_docente_aee_formacao_continuada + description: Número de professores do Atendimento Educacional Especializado + (AEE) com formação continuada sobre Educação Especial + - name: br_inep_educacao_especial__docente_formacao + description: 'Quantidade de docentes da Educação Básica Formação Continuada em + Educação Especial por rede de ensino. Dados obtidos via Pedido LAI (nº protocolo: + 23546049990202406)' + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: rede + description: Rede Escolar (e.g. Federal, Estadual, Municipal e Privada) + - name: quantidade_docente_formacao_continuada + description: Quantidade de docentes da Educação Básica com formação continuada + em Educação Especial + - name: br_inep_educacao_especial__matricula_aee + description: 'Quantidade de matrículas no Atendimento Educacional Especializado + (AEE) por unidade da federação e rede de ensino. Dados obtidos via Pedido LAI + (nº protocolo: 23546086048202330)' + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: rede + description: Rede Escolar (e.g. Federal, Estadual, Municipal e Privada) + - name: quantidade_matricula + description: Número de matrículas na Educação Especial + - name: quantidade_matricula_aee + description: Número de matrículas no Atendimento Educacional Especializado + (AEE) From a69793e942656e4ddaf795978cbdc5ae730aeffd Mon Sep 17 00:00:00 2001 From: vilelaluiza Date: Thu, 24 Oct 2024 22:22:20 -0300 Subject: [PATCH 03/10] fix schema --- .../br_inep_educacao_especial/schema copy.yml | 391 ------------------ models/br_inep_educacao_especial/schema.yml | 62 ++- 2 files changed, 57 insertions(+), 396 deletions(-) delete mode 100644 models/br_inep_educacao_especial/schema copy.yml diff --git a/models/br_inep_educacao_especial/schema copy.yml b/models/br_inep_educacao_especial/schema copy.yml deleted file mode 100644 index cb02eedd..00000000 --- a/models/br_inep_educacao_especial/schema copy.yml +++ /dev/null @@ -1,391 +0,0 @@ ---- -version: 2 -models: - - name: br_inep_educacao_especial__etapa_ensino - description: Número de alunos matriculados na Educação Especial ao longo do tempo - por tipo de classe (Comuns ou Exclusivas) e Etapa de Ensino - tests: - - not_null_proportion_multiple_columns: - at_least: 0.05 - columns: - - name: ano - description: Ano - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: sigla_uf - description: Sigla da Unidade da Federação - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: sigla - - name: id_municipio - description: ID Município - IBGE 7 Dígitos - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio - - name: tipo_classe - description: Tipo de classe da Educação Especial (e.g. Classes Comuns ou Classes - Exclusivas/Especiais) - - name: etapa_ensino - description: Etapa e/ou Sub-etapas de ensino (e.g. Creche, Pré-escola, Anos - Iniciais, Anos Finais, Ensino Fundamental - EJA, ...) - - name: quantidade_matricula - description: Número de matrículas - - name: br_inep_educacao_especial__faixa_etaria - description: Número de alunos matriculados na Educação Especial ao longo do tempo - por tipo de classe (Comuns ou Exclusivas) e faixa etária - tests: - - not_null_proportion_multiple_columns: - at_least: 0.05 - columns: - - name: ano - description: Ano - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: sigla_uf - description: Sigla da Unidade da Federação - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: sigla - - name: id_municipio - description: ID Município - IBGE 7 Dígitos - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio - - name: tipo_classe - description: Tipo de classe da Educação Especial (e.g. Classes Comuns ou Classes - Exclusivas/Especiais) - - name: faixa_etaria - description: Faixa etária - - name: quantidade_matricula - description: Número de matrículas - - name: br_inep_educacao_especial__localizacao - description: Número de alunos matriculados na Educação Especial ao longo do tempo - por tipo de classe, rede e localização - tests: - - not_null_proportion_multiple_columns: - at_least: 0.05 - columns: - - name: ano - description: Ano - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: sigla_uf - description: Sigla da Unidade da Federação - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: sigla - - name: id_municipio - description: ID Município - IBGE 7 Dígitos - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio - - name: tipo_classe - description: Tipo de classe da Educação Especial (e.g. Classes Comuns ou Classes - Exclusivas/Especiais) - - name: rede - description: Rede Escolar (e.g. Federal, Estadual, Municipal e Privada) - - name: localizacao - description: Localização (e.g. Zona Urbana, Zona Rural) - - name: quantidade_matricula - description: Número de matrículas - - name: br_inep_educacao_especial__sexo_raca_cor - description: Número de alunos matriculados na Educação Especial ao longo do tempo - por tipo de classe, sexo e raça/cor - tests: - - not_null_proportion_multiple_columns: - at_least: 0.05 - columns: - - name: ano - description: Ano - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: sigla_uf - description: Sigla da Unidade da Federação - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: sigla - - name: id_municipio - description: ID Município - IBGE 7 Dígitos - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio - - name: tipo_classe - description: Tipo de classe da Educação Especial (e.g. Classes Comuns ou Classes - Exclusivas/Especiais) - - name: sexo - description: Sexo - - name: raca_cor - description: Raça/Cor - - name: quantidade_matricula - description: Número de matrículas - - name: br_inep_educacao_especial__tempo_ensino - description: Número de alunos matriculados na Educação Especial ao longo do tempo - por tipo de classe, rede e tempo de ensino (Integral ou Parcial) - tests: - - not_null_proportion_multiple_columns: - at_least: 0.05 - columns: - - name: ano - description: Ano - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: sigla_uf - description: Sigla da Unidade da Federação - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: sigla - - name: id_municipio - description: ID Município - IBGE 7 Dígitos - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio - - name: tipo_classe - description: Tipo de classe da Educação Especial (e.g. Classes Comuns ou Classes - Exclusivas/Especiais) - - name: rede - description: Rede Escolar (e.g. Federal, Estadual, Municipal e Privada) - - name: tempo_ensino - description: Classificação em tempo integral e tempo parcial - - name: quantidade_matricula - description: Número de matrículas - - name: br_inep_educacao_especial__tipo_deficiencia - description: Número de alunos matriculados na Educação Especial ao longo do tempo - por tipo de classe e tipo de deficiência, transtorno global do desenvolvimento - ou altas habilidades/superdotação - tests: - - not_null_proportion_multiple_columns: - at_least: 0.05 - columns: - - name: ano - description: Ano - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: sigla_uf - description: Sigla da Unidade da Federação - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: sigla - - name: id_municipio - description: ID Município - IBGE 7 Dígitos - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio - - name: tipo_classe - description: Tipo de classe da Educação Especial (e.g. Classes Comuns ou Classes - Exclusivas/Especiais) - - name: tipo_deficiêcia - description: Tipo de deficiência, transtorno global do desenvolvimento ou - altas habilidades/superdotação - - name: quantidade_matricula - description: Número de matrículas - - name: br_inep_educacao_especial__uf_distorcao_idade_serie - description: 'Taxa de distorção idade-série da Educação Especial por UF. Dados - obtidos via Pedido LAI (nº protocolo: 23546066150202238)' - tests: - - not_null_proportion_multiple_columns: - at_least: 0.05 - columns: - - name: ano - description: Ano - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: sigla_uf - description: Sigla da Unidade da Federação - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: sigla - - name: etapa_ensino - description: Etapa e/ou Sub-etapas de ensino (e.g. Creche, Pré-escola, Anos - Iniciais, Anos Finais, Ensino Fundamental - EJA, ...) - - name: tdi - description: Taxa de distorção idade-série - - name: br_inep_educacao_especial__brasil_distorcao_idade_serie - description: 'Taxa de distorção idade-série da Educação Especial no Brasil. Dados - obtidos via Pedido LAI (nº protocolo: 23546066150202238)' - tests: - - not_null_proportion_multiple_columns: - at_least: 0.05 - columns: - - name: ano - description: Ano - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: etapa_ensino - description: Etapa e/ou Sub-etapas de ensino (e.g. Creche, Pré-escola, Anos - Iniciais, Anos Finais, Ensino Fundamental - EJA, ...) - - name: tdi - description: Taxa de distorção idade-série - - name: br_inep_educacao_especial__uf_taxa_rendimento - description: 'Taxas de rendimento (aprovação, reprovação e abandono) da Educação - Especial por UF. Dados obtidos via Pedido LAI (nº protocolo: 23546054413202266)' - tests: - - not_null_proportion_multiple_columns: - at_least: 0.05 - columns: - - name: ano - description: Ano - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: sigla_uf - description: Sigla da Unidade da Federação - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: sigla - - name: etapa_ensino - description: Etapa e/ou Sub-etapas de ensino (e.g. Creche, Pré-escola, Anos - Iniciais, Anos Finais, Ensino Fundamental - EJA, ...) - - name: taxa_aprovacao - description: Taxa de aprovação - - name: taxa_reprovacao - description: Taxa de reprovação - - name: taxa_abandono - description: Taxa de abandono - - name: br_inep_educacao_especial__brasil_taxa_rendimento - description: 'Taxas de rendimento (aprovação, reprovação e abandono) da Educação - Especial no Brasil. Dados obtidos via Pedido LAI (nº protocolo: 23546054413202266)' - tests: - - not_null_proportion_multiple_columns: - at_least: 0.05 - columns: - - name: ano - description: Ano - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: etapa_ensino - description: Etapa e/ou Sub-etapas de ensino (e.g. Creche, Pré-escola, Anos - Iniciais, Anos Finais, Ensino Fundamental - EJA, ...) - - name: taxa_aprovacao - description: Taxa de aprovação - - name: taxa_reprovacao - description: Taxa de reprovação - - name: taxa_abandono - description: Taxa de abandono - - name: br_inep_educacao_especial__docente_aee - description: 'Quantidade de docentes regentes e do Atendimento Educacional Especializado - (AEE) no total e com Formação Continuada em Educação Especial. Dados obtidos - via Pedido LAI (nº protocolo: 23546035869202316)' - tests: - - not_null_proportion_multiple_columns: - at_least: 0.05 - columns: - - name: ano - description: Ano - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: sigla_uf - description: Sigla da Unidade da Federação - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: sigla - - name: id_municipio - description: ID Município - IBGE 7 Dígitos - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio - - name: quantidade_docente_regente - description: Número de professores regentes - - name: quantidade_docente_aee - description: Número de professores do Atendimento Educacional Especializado - (AEE) - - name: quantidade_docente_regente_formacao_continuada - description: Número de professores regentes com formação continuada sobre - Educação Especial - - name: quantidade_docente_aee_formacao_continuada - description: Número de professores do Atendimento Educacional Especializado - (AEE) com formação continuada sobre Educação Especial - - name: br_inep_educacao_especial__docente_formacao - description: 'Quantidade de docentes da Educação Básica Formação Continuada em - Educação Especial por rede de ensino. Dados obtidos via Pedido LAI (nº protocolo: - 23546049990202406)' - tests: - - not_null_proportion_multiple_columns: - at_least: 0.05 - columns: - - name: ano - description: Ano - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: sigla_uf - description: Sigla da Unidade da Federação - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: sigla - - name: id_municipio - description: ID Município - IBGE 7 Dígitos - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__municipio') - field: id_municipio - - name: rede - description: Rede Escolar (e.g. Federal, Estadual, Municipal e Privada) - - name: quantidade_docente_formacao_continuada - description: Quantidade de docentes da Educação Básica com formação continuada - em Educação Especial - - name: br_inep_educacao_especial__matricula_aee - description: 'Quantidade de matrículas no Atendimento Educacional Especializado - (AEE) por unidade da federação e rede de ensino. Dados obtidos via Pedido LAI - (nº protocolo: 23546086048202330)' - tests: - - not_null_proportion_multiple_columns: - at_least: 0.05 - columns: - - name: ano - description: Ano - tests: - - relationships: - to: ref('br_bd_diretorios_data_tempo__ano') - field: ano.ano - - name: sigla_uf - description: Sigla da Unidade da Federação - tests: - - relationships: - to: ref('br_bd_diretorios_brasil__uf') - field: sigla - - name: rede - description: Rede Escolar (e.g. Federal, Estadual, Municipal e Privada) - - name: quantidade_matricula - description: Número de matrículas na Educação Especial - - name: quantidade_matricula_aee - description: Número de matrículas no Atendimento Educacional Especializado - (AEE) diff --git a/models/br_inep_educacao_especial/schema.yml b/models/br_inep_educacao_especial/schema.yml index 7ad48021..cb02eedd 100644 --- a/models/br_inep_educacao_especial/schema.yml +++ b/models/br_inep_educacao_especial/schema.yml @@ -202,9 +202,9 @@ models: altas habilidades/superdotação - name: quantidade_matricula description: Número de matrículas - - name: br_inep_educacao_especial__distorcao_idade_serie - description: 'Taxa de distorção idade-série da Educação Especial. Dados obtidos - via Pedido LAI (nº protocolo: 23546066150202238)' + - name: br_inep_educacao_especial__uf_distorcao_idade_serie + description: 'Taxa de distorção idade-série da Educação Especial por UF. Dados + obtidos via Pedido LAI (nº protocolo: 23546066150202238)' tests: - not_null_proportion_multiple_columns: at_least: 0.05 @@ -226,9 +226,30 @@ models: Iniciais, Anos Finais, Ensino Fundamental - EJA, ...) - name: tdi description: Taxa de distorção idade-série - - name: br_inep_educacao_especial__taxa_rendimento + - name: br_inep_educacao_especial__brasil_distorcao_idade_serie + description: 'Taxa de distorção idade-série da Educação Especial no Brasil. Dados + obtidos via Pedido LAI (nº protocolo: 23546066150202238)' + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: etapa_ensino + description: Etapa e/ou Sub-etapas de ensino (e.g. Creche, Pré-escola, Anos + Iniciais, Anos Finais, Ensino Fundamental - EJA, ...) + - name: tdi + description: Taxa de distorção idade-série + - name: br_inep_educacao_especial__uf_taxa_rendimento description: 'Taxas de rendimento (aprovação, reprovação e abandono) da Educação - Especial. Dados obtidos via Pedido LAI (nº protocolo: 23546054413202266)' + Especial por UF. Dados obtidos via Pedido LAI (nº protocolo: 23546054413202266)' + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 columns: - name: ano description: Ano @@ -251,10 +272,35 @@ models: description: Taxa de reprovação - name: taxa_abandono description: Taxa de abandono + - name: br_inep_educacao_especial__brasil_taxa_rendimento + description: 'Taxas de rendimento (aprovação, reprovação e abandono) da Educação + Especial no Brasil. Dados obtidos via Pedido LAI (nº protocolo: 23546054413202266)' + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: etapa_ensino + description: Etapa e/ou Sub-etapas de ensino (e.g. Creche, Pré-escola, Anos + Iniciais, Anos Finais, Ensino Fundamental - EJA, ...) + - name: taxa_aprovacao + description: Taxa de aprovação + - name: taxa_reprovacao + description: Taxa de reprovação + - name: taxa_abandono + description: Taxa de abandono - name: br_inep_educacao_especial__docente_aee description: 'Quantidade de docentes regentes e do Atendimento Educacional Especializado (AEE) no total e com Formação Continuada em Educação Especial. Dados obtidos via Pedido LAI (nº protocolo: 23546035869202316)' + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 columns: - name: ano description: Ano @@ -289,6 +335,9 @@ models: description: 'Quantidade de docentes da Educação Básica Formação Continuada em Educação Especial por rede de ensino. Dados obtidos via Pedido LAI (nº protocolo: 23546049990202406)' + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 columns: - name: ano description: Ano @@ -317,6 +366,9 @@ models: description: 'Quantidade de matrículas no Atendimento Educacional Especializado (AEE) por unidade da federação e rede de ensino. Dados obtidos via Pedido LAI (nº protocolo: 23546086048202330)' + tests: + - not_null_proportion_multiple_columns: + at_least: 0.05 columns: - name: ano description: Ano From 9586d6b5de93880fbcbf007b2e66221e55f9adea Mon Sep 17 00:00:00 2001 From: vilelaluiza Date: Thu, 24 Oct 2024 22:25:52 -0300 Subject: [PATCH 04/10] fix lint --- ...br_inep_educacao_especial__brasil_distorcao_idade_serie.sql | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_distorcao_idade_serie.sql b/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_distorcao_idade_serie.sql index b7547236..31104656 100644 --- a/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_distorcao_idade_serie.sql +++ b/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_distorcao_idade_serie.sql @@ -11,5 +11,4 @@ select safe_cast(etapa_ensino as string) etapa_ensino, safe_cast(tdi as float64) tdi, from - `basedosdados-staging.br_inep_educacao_especial_staging.brasil_distorcao_idade_serie` - as t + `basedosdados-staging.br_inep_educacao_especial_staging.brasil_distorcao_idade_serie` as t From a3362ed311eb955fd56916cfe4f4429725c959b4 Mon Sep 17 00:00:00 2001 From: vilelaluiza Date: Fri, 25 Oct 2024 09:48:10 -0300 Subject: [PATCH 05/10] remove 2 non existing tables --- ..._educacao_especial__distorcao_idade_serie.sql | 14 -------------- ...r_inep_educacao_especial__taxa_rendimento.sql | 16 ---------------- 2 files changed, 30 deletions(-) delete mode 100644 models/br_inep_educacao_especial/br_inep_educacao_especial__distorcao_idade_serie.sql delete mode 100644 models/br_inep_educacao_especial/br_inep_educacao_especial__taxa_rendimento.sql diff --git a/models/br_inep_educacao_especial/br_inep_educacao_especial__distorcao_idade_serie.sql b/models/br_inep_educacao_especial/br_inep_educacao_especial__distorcao_idade_serie.sql deleted file mode 100644 index 2a8451e0..00000000 --- a/models/br_inep_educacao_especial/br_inep_educacao_especial__distorcao_idade_serie.sql +++ /dev/null @@ -1,14 +0,0 @@ -{{ - config( - alias="distorcao_idade_serie", - schema="br_inep_educacao_especial", - materialized="table", - ) -}} - -select - safe_cast(ano as int64) ano, - safe_cast(sigla_uf as string) sigla_uf, - safe_cast(etapa_ensino as string) etapa_ensino, - safe_cast(tdi as float64) tdi, -from `basedosdados-staging.br_inep_educacao_especial_staging.distorcao_idade_serie` as t diff --git a/models/br_inep_educacao_especial/br_inep_educacao_especial__taxa_rendimento.sql b/models/br_inep_educacao_especial/br_inep_educacao_especial__taxa_rendimento.sql deleted file mode 100644 index de69f9be..00000000 --- a/models/br_inep_educacao_especial/br_inep_educacao_especial__taxa_rendimento.sql +++ /dev/null @@ -1,16 +0,0 @@ -{{ - config( - alias="taxa_rendimento", - schema="br_inep_educacao_especial", - materialized="table", - ) -}} - -select - safe_cast(ano as int64) ano, - safe_cast(sigla_uf as string) sigla_uf, - safe_cast(etapa_ensino as string) etapa_ensino, - safe_cast(taxa_aprovacao as float64) taxa_aprovacao, - safe_cast(taxa_reprovacao as float64) taxa_reprovacao, - safe_cast(taxa_abandono as float64) taxa_abandono, -from `basedosdados-staging.br_inep_educacao_especial_staging.taxa_rendimento` as t From d8cf314aafd0324d93e4898efffb7281030e7a6c Mon Sep 17 00:00:00 2001 From: vilelaluiza Date: Fri, 25 Oct 2024 12:07:07 -0300 Subject: [PATCH 06/10] fix lint mesmo --- ...r_inep_educacao_especial__brasil_distorcao_idade_serie.sql | 3 ++- .../br_inep_educacao_especial__brasil_taxa_rendimento.sql | 3 ++- .../br_inep_educacao_especial__uf_distorcao_idade_serie.sql | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_distorcao_idade_serie.sql b/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_distorcao_idade_serie.sql index 31104656..b7547236 100644 --- a/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_distorcao_idade_serie.sql +++ b/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_distorcao_idade_serie.sql @@ -11,4 +11,5 @@ select safe_cast(etapa_ensino as string) etapa_ensino, safe_cast(tdi as float64) tdi, from - `basedosdados-staging.br_inep_educacao_especial_staging.brasil_distorcao_idade_serie` as t + `basedosdados-staging.br_inep_educacao_especial_staging.brasil_distorcao_idade_serie` + as t diff --git a/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_taxa_rendimento.sql b/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_taxa_rendimento.sql index f6138975..953b4c0b 100644 --- a/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_taxa_rendimento.sql +++ b/models/br_inep_educacao_especial/br_inep_educacao_especial__brasil_taxa_rendimento.sql @@ -12,4 +12,5 @@ select safe_cast(taxa_aprovacao as float64) taxa_aprovacao, safe_cast(taxa_reprovacao as float64) taxa_reprovacao, safe_cast(taxa_abandono as float64) taxa_abandono, -from `basedosdados-staging.br_inep_educacao_especial_staging.brasil_taxa_rendimento` as t +from + `basedosdados-staging.br_inep_educacao_especial_staging.brasil_taxa_rendimento` as t diff --git a/models/br_inep_educacao_especial/br_inep_educacao_especial__uf_distorcao_idade_serie.sql b/models/br_inep_educacao_especial/br_inep_educacao_especial__uf_distorcao_idade_serie.sql index 5c8fa01f..a4c93bb0 100644 --- a/models/br_inep_educacao_especial/br_inep_educacao_especial__uf_distorcao_idade_serie.sql +++ b/models/br_inep_educacao_especial/br_inep_educacao_especial__uf_distorcao_idade_serie.sql @@ -11,4 +11,6 @@ select safe_cast(sigla_uf as string) sigla_uf, safe_cast(etapa_ensino as string) etapa_ensino, safe_cast(tdi as float64) tdi, -from `basedosdados-staging.br_inep_educacao_especial_staging.uf_distorcao_idade_serie` as t +from + `basedosdados-staging.br_inep_educacao_especial_staging.uf_distorcao_idade_serie` + as t From 1522fd2f2d2afd32b3b49490f2055c58dcee5cdd Mon Sep 17 00:00:00 2001 From: tricktx Date: Mon, 28 Oct 2024 11:56:02 -0300 Subject: [PATCH 07/10] add tables docentes in inep sinopse --- ...a_educacao_basica__docente_deficiencia.sql | 23 + ..._educacao_basica__docente_escolaridade.sql | 23 + ..._educacao_basica__docente_etapa_ensino.sql | 24 + ...acao_basica__docente_faixa_etaria_sexo.sql | 24 + ...a_educacao_basica__docente_localizacao.sql | 24 + ...ucacao_basica__docente_regime_contrato.sql | 24 + .../code_docente/docente_deficiencia.py | 175 ++++++ .../code_docente/docente_escolaridade.py | 349 +++++++++++ .../code_docente/docente_faixa_etaria_sexo.py | 446 +++++++++++++ .../code_docente/docente_localizacao.py | 546 ++++++++++++++++ .../docente_regime_contratacao.py | 588 ++++++++++++++++++ .../code_docente/docentes_etapa_ensino.py | 492 +++++++++++++++ .../schema.yml | 237 +++++++ 13 files changed, 2975 insertions(+) create mode 100644 models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_deficiencia.sql create mode 100644 models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_escolaridade.sql create mode 100644 models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_etapa_ensino.sql create mode 100644 models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_faixa_etaria_sexo.sql create mode 100644 models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_localizacao.sql create mode 100644 models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_regime_contrato.sql create mode 100644 models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_deficiencia.py create mode 100644 models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_escolaridade.py create mode 100644 models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_faixa_etaria_sexo.py create mode 100644 models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_localizacao.py create mode 100644 models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_regime_contratacao.py create mode 100644 models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docentes_etapa_ensino.py diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_deficiencia.sql b/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_deficiencia.sql new file mode 100644 index 00000000..384fa0e2 --- /dev/null +++ b/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_deficiencia.sql @@ -0,0 +1,23 @@ +{{ + config( + alias="docente_deficiencia", + schema="br_inep_sinopse_estatistica_educacao_basica", + materialized="table", + partition_by={ + "field": "ano", + "data_type": "int64", + "range": {"start": 2012, "end": 2023, "interval": 1}, + }, + cluster_by="sigla_uf", + ) +}} +select + safe_cast(ano as int64) ano, + safe_cast(sigla_uf as string) sigla_uf, + safe_cast(id_municipio as string) id_municipio, + safe_cast(tipo_classe as string) tipo_classe, + safe_cast(deficiencia as string) deficiencia, + safe_cast(quantidade_docente as int64) quantidade_docente, +from + `basedosdados-staging.br_inep_sinopse_estatistica_educacao_basica_staging.docente_deficiencia` + as t diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_escolaridade.sql b/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_escolaridade.sql new file mode 100644 index 00000000..77a3b180 --- /dev/null +++ b/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_escolaridade.sql @@ -0,0 +1,23 @@ +{{ + config( + alias="docente_escolaridade", + schema="br_inep_sinopse_estatistica_educacao_basica", + materialized="table", + partition_by={ + "field": "ano", + "data_type": "int64", + "range": {"start": 2007, "end": 2023, "interval": 1}, + }, + cluster_by="sigla_uf", + ) +}} +select + safe_cast(ano as int64) ano, + safe_cast(sigla_uf as string) sigla_uf, + safe_cast(id_municipio as string) id_municipio, + safe_cast(tipo_classe as string) tipo_classe, + safe_cast(escolaridade as string) escolaridade, + safe_cast(replace(quantidade_docente, ".0", "") as int64) quantidade_docente, +from + `basedosdados-staging.br_inep_sinopse_estatistica_educacao_basica_staging.docente_escolaridade` + as t diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_etapa_ensino.sql b/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_etapa_ensino.sql new file mode 100644 index 00000000..73424c9e --- /dev/null +++ b/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_etapa_ensino.sql @@ -0,0 +1,24 @@ +{{ + config( + alias="docente_etapa_ensino", + schema="br_inep_sinopse_estatistica_educacao_basica", + materialized="table", + partition_by={ + "field": "ano", + "data_type": "int64", + "range": {"start": 2007, "end": 2023, "interval": 1}, + }, + cluster_by="sigla_uf", + ) +}} + +select + safe_cast(ano as int64) ano, + safe_cast(sigla_uf as string) sigla_uf, + safe_cast(replace(id_municipio, ".0", "") as string) id_municipio, + safe_cast(tipo_classe as string) tipo_classe, + safe_cast(etapa_ensino as string) etapa_ensino, + safe_cast(replace(quantidade_docentes, ".0", "") as int64) quantidade_docente, +from + `basedosdados-staging.br_inep_sinopse_estatistica_educacao_basica_staging.docente_etapa_ensino` + as t diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_faixa_etaria_sexo.sql b/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_faixa_etaria_sexo.sql new file mode 100644 index 00000000..bd7e3636 --- /dev/null +++ b/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_faixa_etaria_sexo.sql @@ -0,0 +1,24 @@ +{{ + config( + alias="docente_faixa_etaria_sexo", + schema="br_inep_sinopse_estatistica_educacao_basica", + materialized="table", + partition_by={ + "field": "ano", + "data_type": "int64", + "range": {"start": 2007, "end": 2023, "interval": 1}, + }, + cluster_by="sigla_uf", + ) +}} +select + safe_cast(ano as int64) ano, + safe_cast(sigla_uf as string) sigla_uf, + safe_cast(id_municipio as string) id_municipio, + safe_cast(tipo_classe as string) tipo_classe, + safe_cast(faixa_etaria as string) faixa_etaria, + safe_cast(sexo as string) sexo, + safe_cast(quantidade_docente as int64) quantidade_docente, +from + `basedosdados-staging.br_inep_sinopse_estatistica_educacao_basica_staging.docente_faixa_etaria_sexo` + as t diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_localizacao.sql b/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_localizacao.sql new file mode 100644 index 00000000..a58cb833 --- /dev/null +++ b/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_localizacao.sql @@ -0,0 +1,24 @@ +{{ + config( + alias="docente_localizacao", + schema="br_inep_sinopse_estatistica_educacao_basica", + materialized="table", + partition_by={ + "field": "ano", + "data_type": "int64", + "range": {"start": 2007, "end": 2023, "interval": 1}, + }, + cluster_by="sigla_uf", + ) +}} +select + safe_cast(ano as int64) ano, + safe_cast(sigla_uf as string) sigla_uf, + safe_cast(replace(id_municipio, ".0", "") as string) id_municipio, + safe_cast(tipo_classe as string) tipo_classe, + safe_cast(rede as string) rede, + safe_cast(localizacao as string) localizacao, + safe_cast(quantidade_docente as int64) quantidade_docente, +from + `basedosdados-staging.br_inep_sinopse_estatistica_educacao_basica_staging.docente_localizacao` + as t diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_regime_contrato.sql b/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_regime_contrato.sql new file mode 100644 index 00000000..74c2d810 --- /dev/null +++ b/models/br_inep_sinopse_estatistica_educacao_basica/br_inep_sinopse_estatistica_educacao_basica__docente_regime_contrato.sql @@ -0,0 +1,24 @@ +{{ + config( + alias="docente_regime_contrato", + schema="br_inep_sinopse_estatistica_educacao_basica", + materialized="table", + partition_by={ + "field": "ano", + "data_type": "int64", + "range": {"start": 2007, "end": 2023, "interval": 1}, + }, + cluster_by="sigla_uf", + ) +}} +select + safe_cast(ano as int64) ano, + safe_cast(sigla_uf as string) sigla_uf, + safe_cast(id_municipio as string) id_municipio, + safe_cast(tipo_classe as string) tipo_classe, + safe_cast(rede as string) rede, + safe_cast(regime_contrato as string) regime_contrato, + safe_cast(quantidade_docente as int64) quantidade_docente, +from + `basedosdados-staging.br_inep_sinopse_estatistica_educacao_basica_staging.docente_regime_contrato` + as t diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_deficiencia.py b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_deficiencia.py new file mode 100644 index 00000000..97ca0d03 --- /dev/null +++ b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_deficiencia.py @@ -0,0 +1,175 @@ +import os +import zipfile +import pandas as pd +import basedosdados as bd +import numpy as np + +pd.set_option("display.max_columns", None) +pd.set_option("display.max_rows", None) + +INPUT = os.path.join(os.getcwd(), "input") +OUTPUT = os.path.join(os.getcwd(), "output") + +# os.makedirs(INPUT, exist_ok=True) +# os.makedirs(OUTPUT, exist_ok=True) + +RENAME_DEFICIENCIA = { + "Educacao Especial - Classes Comuns": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Cegueira": "Cegueira", + "Baixa Visão": "Baixa Visão", + "Surdez": "Surdez", + "Deficiência Auditiva": "Deficiência Auditiva", + "Surdocegueira": "Surdocegueira", + "Deficiência Física": "Deficiência Física", + "Deficiência Intelectual": "Deficiência Intelectual", + "Deficiência Múltipla": "Deficiência Múltipla", + # "Transtorno do Espectro Autista": "Transtorno do Espectro Autista", + # "Altas Habilidades / Superdotação": "Altas Habilidades / Superdotação", + }, + "Educacao Especial - Classes Exclusivas": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Cegueira": "Cegueira", + "Baixa Visão": "Baixa Visão", + "Surdez": "Surdez", + "Deficiência Auditiva": "Deficiência Auditiva", + "Surdocegueira": "Surdocegueira", + "Deficiência Física": "Deficiência Física", + "Deficiência Intelectual": "Deficiência Intelectual", + "Deficiência Múltipla": "Deficiência Múltipla", + # "Transtorno do Espectro Autista": "Transtorno do Espectro Autista", + # "Altas Habilidades / Superdotação": "Altas Habilidades / Superdotação", + }, +} + +deficiencia = { + "educacao_especial_classes_comuns": { + "dicionario": RENAME_DEFICIENCIA["Educacao Especial - Classes Comuns"], + "chave": "2.48", + "valor": "Educacao Especial - Classes Comuns", + "skiprows": 7, + "table": "docente_deficiencia", + }, + "educacao_especial_classes_exclusivas": { + "dicionario": RENAME_DEFICIENCIA["Educacao Especial - Classes Exclusivas"], + "chave": "2.54", + "valor": "Educacao Especial - Classes Exclusivas", + "skiprows": 7, + "table": "docente_deficiencia", + }, +} + + +def read_sheet( + table: str, ano: int, chave: str, valor: str, dicionario: dict, skiprows +) -> pd.DataFrame: + print("Tratando dados de", valor, ano) + path_excel = os.path.join( + INPUT, + f"Sinopse_Estatistica_da_Educaç╞o_Basica_{ano}", + f"Sinopse_Estatistica_da_Educaç╞o_Basica_{ano}.xlsx", + ) + + df = pd.read_excel( + path_excel, + skiprows=skiprows, + sheet_name=chave, + ) + + sheets_etapa_ensino_serie = {chave: valor} + + dfs_deficiencia = { + name: pd.read_excel(path_excel, skiprows=skiprows, sheet_name=sheet_name) + for sheet_name, name in sheets_etapa_ensino_serie.items() + } + + dataframes = {} + + for table_name, columns in dfs_deficiencia.items(): + df = pd.DataFrame(columns) # Create DataFrame for each table + dataframes[table_name] = df # Store the DataFrame in a dictionary + + print(df.columns) + + def drop_unused_columns(df: pd.DataFrame) -> pd.DataFrame: + cols_drop = [ + col + for col in df.columns + if col.startswith("Unnamed") or col.startswith("Total") + ] + + return df.drop(columns=cols_drop) + + dfs_deficiencia = { + name: drop_unused_columns( + df.rename(columns=RENAME_DEFICIENCIA[name], errors="raise") + ) + for name, df in dfs_deficiencia.items() + } + + df_deficiencia = pd.concat( + [ + df.pipe( + lambda d: d.loc[(d["id_municipio"].notna()) & (d["id_municipio"] != " "),] + ) + .pipe( + lambda d: pd.melt( + d, + id_vars=["id_municipio", "uf"], + value_vars=d.columns.difference( + ["id_municipio", "uf"] + ).tolist(), # Convert to list + var_name="deficiencia", + value_name="quantidade_docente", + ) + ) + .assign(tipo_classe=tipo_classe) + for tipo_classe, df in dfs_deficiencia.items() + ] + ) + + bd_dir = bd.read_sql( + "SELECT nome, sigla FROM `basedosdados.br_bd_diretorios_brasil.uf`", + billing_project_id="basedosdados", + reauth=False, + ) + + df_deficiencia["uf"] = df_deficiencia["uf"].apply(lambda uf: uf.strip()).replace({i["nome"]: i["sigla"] for i in bd_dir.to_dict("records")}) # type: ignore + + df_deficiencia = df_deficiencia.rename(columns={"uf": "sigla_uf"}, errors="raise") + + df_deficiencia["quantidade_docente"] = df_deficiencia["quantidade_docente"].astype( + int + ) + + print("Particionando dados") + for sigla_uf, df in df_deficiencia.groupby("sigla_uf"): + path = os.path.join(OUTPUT, f"{table}", f"ano={ano}", f"sigla_uf={sigla_uf}") + if not os.path.exists(path): + os.makedirs(path, exist_ok=True) + df.drop(columns=["sigla_uf"]).to_csv( + os.path.join(path, "data.csv"), index=False, mode="w" + ) + else: + df.drop(columns=["sigla_uf"]).to_csv( + os.path.join(path, "data.csv"), index=False, mode="a", header=False + ) + + +lista = [ + "educacao_especial_classes_comuns", + "educacao_especial_classes_exclusivas", +] + +for x in lista: + # for ano in range(2012, 2019): + read_sheet( + table=deficiencia[x]["table"], + ano=2011, + chave=deficiencia[x]["chave"], + valor=deficiencia[x]["valor"], + dicionario=deficiencia[x]["dicionario"], + skiprows=deficiencia[x]["skiprows"], + ) diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_escolaridade.py b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_escolaridade.py new file mode 100644 index 00000000..7267d1cb --- /dev/null +++ b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_escolaridade.py @@ -0,0 +1,349 @@ +import os +import zipfile +import pandas as pd +import basedosdados as bd +import numpy as np + +pd.set_option("display.max_columns", None) +pd.set_option("display.max_rows", None) + +INPUT = os.path.join(os.getcwd(), "input") +OUTPUT = os.path.join(os.getcwd(), "output") + +# os.makedirs(INPUT, exist_ok=True) +# os.makedirs(OUTPUT, exist_ok=True) + +RENAMES_ETAPA_ENSINO_SERIE = { + "Educacao Basica": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Unnamed: 5": "Ensino Fundamental", + "Unnamed: 6": "Ensino Médio", + "Com Licenciatura10": "Graduação - Com Licenciatura", + "Sem Licenciatura": "Graduação - Sem Licenciatura", + "Especialização": "Pós Graduação - Especialização", + "Mestrado": "Pós Graduação - Mestrado", + "Doutorado": "Pós Graduação - Doutorado", + }, + "Educacao Infantil - Creche": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Unnamed: 5": "Ensino Fundamental", + "Unnamed: 6": "Ensino Médio", + "Com Licenciatura10": "Graduação - Com Licenciatura", + "Sem Licenciatura": "Graduação - Sem Licenciatura", + "Especialização": "Pós Graduação - Especialização", + "Mestrado": "Pós Graduação - Mestrado", + "Doutorado": "Pós Graduação - Doutorado", + }, + "Educacao Infantil - Pré-Escola": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Unnamed: 5": "Ensino Fundamental", + "Unnamed: 6": "Ensino Médio", + "Com Licenciatura10": "Graduação - Com Licenciatura", + "Sem Licenciatura": "Graduação - Sem Licenciatura", + "Especialização": "Pós Graduação - Especialização", + "Mestrado": "Pós Graduação - Mestrado", + "Doutorado": "Pós Graduação - Doutorado", + }, + "Ensino Fundamental": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Unnamed: 5": "Ensino Fundamental", + "Unnamed: 6": "Ensino Médio", + "Com Licenciatura9": "Graduação - Com Licenciatura", + "Sem Licenciatura": "Graduação - Sem Licenciatura", + "Especialização": "Pós Graduação - Especialização", + "Mestrado": "Pós Graduação - Mestrado", + "Doutorado": "Pós Graduação - Doutorado", + }, + "Ensino Fundamental - Anos Iniciais": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Unnamed: 5": "Ensino Fundamental", + "Unnamed: 6": "Ensino Médio", + "Com Licenciatura9": "Graduação - Com Licenciatura", + "Sem Licenciatura": "Graduação - Sem Licenciatura", + "Especialização": "Pós Graduação - Especialização", + "Mestrado": "Pós Graduação - Mestrado", + "Doutorado": "Pós Graduação - Doutorado", + }, + "Ensino Fundamental - Anos Finais": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Unnamed: 5": "Ensino Fundamental", + "Unnamed: 6": "Ensino Médio", + "Com Licenciatura9": "Graduação - Com Licenciatura", + "Sem Licenciatura": "Graduação - Sem Licenciatura", + "Especialização": "Pós Graduação - Especialização", + "Mestrado": "Pós Graduação - Mestrado", + "Doutorado": "Pós Graduação - Doutorado", + }, + "Ensino Médio": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Unnamed: 5": "Ensino Fundamental", + "Unnamed: 6": "Ensino Médio", + "Com Licenciatura9": "Graduação - Com Licenciatura", + "Sem Licenciatura": "Graduação - Sem Licenciatura", + "Especialização": "Pós Graduação - Especialização", + "Mestrado": "Pós Graduação - Mestrado", + "Doutorado": "Pós Graduação - Doutorado", + }, + "Educacao Profissional": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Unnamed: 5": "Ensino Fundamental", + "Unnamed: 6": "Ensino Médio", + "Com Licenciatura9": "Graduação - Com Licenciatura", + "Sem Licenciatura": "Graduação - Sem Licenciatura", + "Especialização": "Pós Graduação - Especialização", + "Mestrado": "Pós Graduação - Mestrado", + "Doutorado": "Pós Graduação - Doutorado", + }, + "EJA": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Unnamed: 5": "Ensino Fundamental", + "Unnamed: 6": "Ensino Médio", + "Com Licenciatura9": "Graduação - Com Licenciatura", + "Sem Licenciatura": "Graduação - Sem Licenciatura", + "Especialização": "Pós Graduação - Especialização", + "Mestrado": "Pós Graduação - Mestrado", + "Doutorado": "Pós Graduação - Doutorado", + }, + "Educacao Especial - Classes Comuns": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Unnamed: 5": "Ensino Fundamental", + "Unnamed: 6": "Ensino Médio", + "Com Licenciatura9": "Graduação - Com Licenciatura", + "Sem Licenciatura": "Graduação - Sem Licenciatura", + "Especialização": "Pós Graduação - Especialização", + "Mestrado": "Pós Graduação - Mestrado", + "Doutorado": "Pós Graduação - Doutorado", + }, + "Educacao Especial - Classes Exclusivas": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Unnamed: 5": "Ensino Fundamental", + "Unnamed: 6": "Ensino Médio", + "Com Licenciatura8": "Graduação - Com Licenciatura", + "Sem Licenciatura": "Graduação - Sem Licenciatura", + "Especialização": "Pós Graduação - Especialização", + "Mestrado": "Pós Graduação - Mestrado", + "Doutorado": "Pós Graduação - Doutorado", + }, +} + + +escolaridade = { + "educacao_basica": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Basica"], + "chave": "2.4", + "valor": "Educacao Basica", + "skiprows": 9, + "table": "docente_escolaridade", + }, + "ensino_infantil_creche": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Infantil - Creche"], + # "chave": "2.10", + "chave": "2.9", # Para anos anteriores a 2010 + "valor": "Educacao Infantil - Creche", + "skiprows": 9, + "table": "docente_escolaridade", + }, + "educacao_infantil_pre_escola": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Infantil - Pré-Escola"], + # "chave": "2.14", + "chave": "2.12", # Para anos anteriores a 2010 + "valor": "Educacao Infantil - Pré-Escola", + "skiprows": 9, + "table": "docente_escolaridade", + }, + "ensino_fundamental": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Ensino Fundamental"], + "chave": "2.19", + "chave": "2.16", # Para anos anteriores a 2010 + "valor": "Ensino Fundamental", + "skiprows": 9, + "table": "docente_escolaridade", + }, + "ensino_fundamental_anos_iniciais": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Ensino Fundamental - Anos Iniciais"], + # "chave": "2.23", + "chave": "2.19", # Para anos anteriores a 2010 + "valor": "Ensino Fundamental - Anos Iniciais", + "skiprows": 9, + "table": "docente_escolaridade", + }, + "ensino_fundamental_anos_finais": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Ensino Fundamental - Anos Finais"], + # "chave": "2.27", + "chave": "2.22", # Para anos anteriores a 2010 + "valor": "Ensino Fundamental - Anos Finais", + "skiprows": 9, + "table": "docente_escolaridade", + }, + "ensino_medio": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Ensino Médio"], + # "chave": "2.31", + "chave": "2.25", # Para anos anteriores a 2010 + "valor": "Ensino Médio", + "skiprows": 9, + "table": "docente_escolaridade", + }, + "educacao_profissional": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Profissional"], + # "chave": "2.36", + "chave": "2.29", # Para anos anteriores a 2010 + "valor": "Educacao Profissional", + "skiprows": 9, + "table": "docente_escolaridade", + }, + "EJA": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["EJA"], + # "chave": "2.41", + "chave": "2.33", # Para anos anteriores a 2010 + "valor": "EJA", + "skiprows": 9, + "table": "docente_escolaridade", + }, + "educacao_especial_classes_comuns": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Especial - Classes Comuns"], + # "chave": "2.47", + "chave": "2.38", # Para anos anteriores a 2010 + "valor": "Educacao Especial - Classes Comuns", + "skiprows": 9, + "table": "docente_escolaridade", + }, + "educacao_especial_classes_exclusivas": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE[ + "Educacao Especial - Classes Exclusivas" + ], + # "chave": "2.53", + "chave": "2.52", # Para o ano de 2011 + "chave": "2.42", # Para anos anteriores a 2010 + "valor": "Educacao Especial - Classes Exclusivas", + "skiprows": 9, + "table": "docente_escolaridade", + }, +} + + +def read_sheet( + table: str, ano: int, chave: str, valor: str, dicionario: dict, skiprows: int = 9 +) -> pd.DataFrame: + print("Tratando dados de", valor, ano) + path_excel = os.path.join( + INPUT, + f"Sinopse_Estatistica_da_Educaç╞o_Basica_{ano}", + f"Sinopse_Estatistica_da_Educaç╞o_Basica_{ano}.xlsx", + ) + df = pd.read_excel( + path_excel, + skiprows=skiprows, + sheet_name=chave, + ) + + sheets_escolaridade = {chave: valor} + + dfs_escolaridade = { + name: pd.read_excel( + path_excel, + skiprows=skiprows, + sheet_name=sheet_name, + ) + for sheet_name, name in sheets_escolaridade.items() + } + + dataframes = {} + for table_name, columns in dfs_escolaridade.items(): + df = pd.DataFrame(columns) + dataframes[table_name] = df + + print(df.columns) + + def drop_unused_columns(df: pd.DataFrame) -> pd.DataFrame: + cols_drop = [ + col + for col in df.columns + if col.startswith("Unnamed") or col.startswith("Total") + ] + + return df.drop(columns=cols_drop) + + dfs_escolaridade = { + name: drop_unused_columns(df.rename(columns=dicionario, errors="raise")) + for name, df in dfs_escolaridade.items() + } + + df_escolaridade = pd.concat( + [ + df.pipe( + lambda d: d.loc[(d["id_municipio"].notna()) & (d["id_municipio"] != " "),] + ) + .pipe( + lambda d: pd.melt( + d, + id_vars=["id_municipio", "uf"], + value_vars=d.columns.difference( + ["id_municipio", "uf"] + ).tolist(), # Convert to list + var_name="escolaridade", + value_name="quantidade_docente", + ) + ) + .assign(tipo_classe=tipo_classe) + for tipo_classe, df in dfs_escolaridade.items() + ] + ) + + bd_dir = bd.read_sql( + "SELECT nome, sigla FROM `basedosdados.br_bd_diretorios_brasil.uf`", + billing_project_id="basedosdados", + reauth=False, + ) + + df_escolaridade["uf"] = df_escolaridade["uf"].apply(lambda uf: uf.strip()).replace({i["nome"]: i["sigla"] for i in bd_dir.to_dict("records")}) # type: ignore + + df_escolaridade = df_escolaridade.rename(columns={"uf": "sigla_uf"}, errors="raise") + + print("Particionando dados") + for sigla_uf, df in df_escolaridade.groupby("sigla_uf"): + path = os.path.join(OUTPUT, f"{table}", f"ano={ano}", f"sigla_uf={sigla_uf}") + if not os.path.exists(path): + os.makedirs(path, exist_ok=True) + df.drop(columns=["sigla_uf"]).to_csv( + os.path.join(path, "data.csv"), index=False, mode="w" + ) + else: + df.drop(columns=["sigla_uf"]).to_csv( + os.path.join(path, "data.csv"), index=False, mode="a", header=False + ) + + +lista = [ + "educacao_basica", + "ensino_infantil_creche", + "educacao_infantil_pre_escola", + "ensino_fundamental", + "ensino_fundamental_anos_iniciais", + "ensino_fundamental_anos_finais", + "ensino_medio", + "educacao_profissional", + "EJA", + "educacao_especial_classes_comuns", + "educacao_especial_classes_exclusivas", +] + +for x in lista: + read_sheet( + table=escolaridade[x]["table"], + ano=2007, + chave=escolaridade[x]["chave"], + valor=escolaridade[x]["valor"], + dicionario=escolaridade[x]["dicionario"], + skiprows=escolaridade[x]["skiprows"], + ) diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_faixa_etaria_sexo.py b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_faixa_etaria_sexo.py new file mode 100644 index 00000000..8d02e638 --- /dev/null +++ b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_faixa_etaria_sexo.py @@ -0,0 +1,446 @@ +import os +import zipfile +import pandas as pd +import basedosdados as bd +import numpy as np + +pd.set_option("display.max_columns", None) +pd.set_option("display.max_rows", None) + +INPUT = os.path.join(os.getcwd(), "input") +OUTPUT = os.path.join(os.getcwd(), "output") + +# os.makedirs(INPUT, exist_ok=True) +# os.makedirs(OUTPUT, exist_ok=True) + +RENAMES_ETAPA_ENSINO_SERIE = { + "Educacao Basica": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Até 24 anos": "Feminino_Até 24 anos", + "De 25 a 29 anos": "Feminino_25 a 29 anos", + "De 30 a 39 anos": "Feminino_30 a 39 anos", + "De 40 a 49 anos": "Feminino_40 a 49 anos", + "De 50 a 54 anos": "Feminino_50 a 54 anos", + "De 55 a 59 anos": "Feminino_55 a 59 anos", + "60 anos ou mais": "Feminino_60 anos ou mais", + "Até 24 anos.1": "Masculino_Até 24 anos", + "De 25 a 29 anos.1": "Masculino_25 a 29 anos", + "De 30 a 39 anos.1": "Masculino_30 a 39 anos", + "De 40 a 49 anos.1": "Masculino_40 a 49 anos", + "De 50 a 54 anos.1": "Masculino_50 a 54 anos", + "De 55 a 59 anos.1": "Masculino_55 a 59 anos", + "60 anos ou mais.1": "Masculino_60 anos ou mais", + }, + "Educacao Infantil - Creche": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Até 24 anos": "Feminino_Até 24 anos", + "De 25 a 29 anos": "Feminino_25 a 29 anos", + "De 30 a 39 anos": "Feminino_30 a 39 anos", + "De 40 a 49 anos": "Feminino_40 a 49 anos", + "De 50 a 54 anos": "Feminino_50 a 54 anos", + "De 55 a 59 anos": "Feminino_55 a 59 anos", + "60 anos ou mais": "Feminino_60 anos ou mais", + "Até 24 anos.1": "Masculino_Até 24 anos", + "De 25 a 29 anos.1": "Masculino_25 a 29 anos", + "De 30 a 39 anos.1": "Masculino_30 a 39 anos", + "De 40 a 49 anos.1": "Masculino_40 a 49 anos", + "De 50 a 54 anos.1": "Masculino_50 a 54 anos", + "De 55 a 59 anos.1": "Masculino_55 a 59 anos", + "60 anos ou mais.1": "Masculino_60 anos ou mais", + }, + "Educacao Infantil - Pré-Escola": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Até 24 anos": "Feminino_Até 24 anos", + "De 25 a 29 anos": "Feminino_25 a 29 anos", + "De 30 a 39 anos": "Feminino_30 a 39 anos", + "De 40 a 49 anos": "Feminino_40 a 49 anos", + "De 50 a 54 anos": "Feminino_50 a 54 anos", + "De 55 a 59 anos": "Feminino_55 a 59 anos", + "60 anos ou mais": "Feminino_60 anos ou mais", + "Até 24 anos.1": "Masculino_Até 24 anos", + "De 25 a 29 anos.1": "Masculino_25 a 29 anos", + "De 30 a 39 anos.1": "Masculino_30 a 39 anos", + "De 40 a 49 anos.1": "Masculino_40 a 49 anos", + "De 50 a 54 anos.1": "Masculino_50 a 54 anos", + "De 55 a 59 anos.1": "Masculino_55 a 59 anos", + "60 anos ou mais.1": "Masculino_60 anos ou mais", + }, + "Ensino Fundamental": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Até 24 anos": "Feminino_Até 24 anos", + "De 25 a 29 anos": "Feminino_25 a 29 anos", + "De 30 a 39 anos": "Feminino_30 a 39 anos", + "De 40 a 49 anos": "Feminino_40 a 49 anos", + "De 50 a 54 anos": "Feminino_50 a 54 anos", + "De 55 a 59 anos": "Feminino_55 a 59 anos", + "60 anos ou mais": "Feminino_60 anos ou mais", + "Até 24 anos.1": "Masculino_Até 24 anos", + "De 25 a 29 anos.1": "Masculino_25 a 29 anos", + "De 30 a 39 anos.1": "Masculino_30 a 39 anos", + "De 40 a 49 anos.1": "Masculino_40 a 49 anos", + "De 50 a 54 anos.1": "Masculino_50 a 54 anos", + "De 55 a 59 anos.1": "Masculino_55 a 59 anos", + "60 anos ou mais.1": "Masculino_60 anos ou mais", + }, + "Ensino Fundamental - Anos Iniciais": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Até 24 anos": "Feminino_Até 24 anos", + "De 25 a 29 anos": "Feminino_25 a 29 anos", + "De 30 a 39 anos": "Feminino_30 a 39 anos", + "De 40 a 49 anos": "Feminino_40 a 49 anos", + "De 50 a 54 anos": "Feminino_50 a 54 anos", + "De 55 a 59 anos": "Feminino_55 a 59 anos", + "60 anos ou mais": "Feminino_60 anos ou mais", + "Até 24 anos.1": "Masculino_Até 24 anos", + "De 25 a 29 anos.1": "Masculino_25 a 29 anos", + "De 30 a 39 anos.1": "Masculino_30 a 39 anos", + "De 40 a 49 anos.1": "Masculino_40 a 49 anos", + "De 50 a 54 anos.1": "Masculino_50 a 54 anos", + "De 55 a 59 anos.1": "Masculino_55 a 59 anos", + "60 anos ou mais.1": "Masculino_60 anos ou mais", + }, + "Ensino Fundamental - Anos Finais": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Até 24 anos": "Feminino_Até 24 anos", + "De 25 a 29 anos": "Feminino_25 a 29 anos", + "De 30 a 39 anos": "Feminino_30 a 39 anos", + "De 40 a 49 anos": "Feminino_40 a 49 anos", + "De 50 a 54 anos": "Feminino_50 a 54 anos", + "De 55 a 59 anos": "Feminino_55 a 59 anos", + "60 anos ou mais": "Feminino_60 anos ou mais", + "Até 24 anos.1": "Masculino_Até 24 anos", + "De 25 a 29 anos.1": "Masculino_25 a 29 anos", + "De 30 a 39 anos.1": "Masculino_30 a 39 anos", + "De 40 a 49 anos.1": "Masculino_40 a 49 anos", + "De 50 a 54 anos.1": "Masculino_50 a 54 anos", + "De 55 a 59 anos.1": "Masculino_55 a 59 anos", + "60 anos ou mais.1": "Masculino_60 anos ou mais", + }, + "Ensino Médio": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Até 24 anos": "Feminino_Até 24 anos", + "De 25 a 29 anos": "Feminino_25 a 29 anos", + "De 30 a 39 anos": "Feminino_30 a 39 anos", + "De 40 a 49 anos": "Feminino_40 a 49 anos", + "De 50 a 54 anos": "Feminino_50 a 54 anos", + "De 55 a 59 anos": "Feminino_55 a 59 anos", + "60 anos ou mais": "Feminino_60 anos ou mais", + "Até 24 anos.1": "Masculino_Até 24 anos", + "De 25 a 29 anos.1": "Masculino_25 a 29 anos", + "De 30 a 39 anos.1": "Masculino_30 a 39 anos", + "De 40 a 49 anos.1": "Masculino_40 a 49 anos", + "De 50 a 54 anos.1": "Masculino_50 a 54 anos", + "De 55 a 59 anos.1": "Masculino_55 a 59 anos", + "60 anos ou mais.1": "Masculino_60 anos ou mais", + }, + "Educacao Profissional": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Até 24 anos": "Feminino_Até 24 anos", + "De 25 a 29 anos": "Feminino_25 a 29 anos", + "De 30 a 39 anos": "Feminino_30 a 39 anos", + "De 40 a 49 anos": "Feminino_40 a 49 anos", + "De 50 a 54 anos": "Feminino_50 a 54 anos", + "De 55 a 59 anos": "Feminino_55 a 59 anos", + "60 anos ou mais": "Feminino_60 anos ou mais", + "Até 24 anos.1": "Masculino_Até 24 anos", + "De 25 a 29 anos.1": "Masculino_25 a 29 anos", + "De 30 a 39 anos.1": "Masculino_30 a 39 anos", + "De 40 a 49 anos.1": "Masculino_40 a 49 anos", + "De 50 a 54 anos.1": "Masculino_50 a 54 anos", + "De 55 a 59 anos.1": "Masculino_55 a 59 anos", + "60 anos ou mais.1": "Masculino_60 anos ou mais", + }, + "EJA": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Até 24 anos": "Feminino_Até 24 anos", + "De 25 a 29 anos": "Feminino_25 a 29 anos", + "De 30 a 39 anos": "Feminino_30 a 39 anos", + "De 40 a 49 anos": "Feminino_40 a 49 anos", + "De 50 a 54 anos": "Feminino_50 a 54 anos", + "De 55 a 59 anos": "Feminino_55 a 59 anos", + "60 anos ou mais": "Feminino_60 anos ou mais", + "Até 24 anos.1": "Masculino_Até 24 anos", + "De 25 a 29 anos.1": "Masculino_25 a 29 anos", + "De 30 a 39 anos.1": "Masculino_30 a 39 anos", + "De 40 a 49 anos.1": "Masculino_40 a 49 anos", + "De 50 a 54 anos.1": "Masculino_50 a 54 anos", + "De 55 a 59 anos.1": "Masculino_55 a 59 anos", + "60 anos ou mais.1": "Masculino_60 anos ou mais", + }, + "Educacao Especial - Classes Comuns": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Até 24 anos": "Feminino_Até 24 anos", + "De 25 a 29 anos": "Feminino_25 a 29 anos", + "De 30 a 39 anos": "Feminino_30 a 39 anos", + "De 40 a 49 anos": "Feminino_40 a 49 anos", + "De 50 a 54 anos": "Feminino_50 a 54 anos", + "De 55 a 59 anos": "Feminino_55 a 59 anos", + "60 anos ou mais": "Feminino_60 anos ou mais", + "Até 24 anos.1": "Masculino_Até 24 anos", + "De 25 a 29 anos.1": "Masculino_25 a 29 anos", + "De 30 a 39 anos.1": "Masculino_30 a 39 anos", + "De 40 a 49 anos.1": "Masculino_40 a 49 anos", + "De 50 a 54 anos.1": "Masculino_50 a 54 anos", + "De 55 a 59 anos.1": "Masculino_55 a 59 anos", + "60 anos ou mais.1": "Masculino_60 anos ou mais", + }, + "Educacao Especial - Classes Exclusivas": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Até 24 anos": "Feminino_Até 24 anos", + "De 25 a 29 anos": "Feminino_25 a 29 anos", + "De 30 a 39 anos": "Feminino_30 a 39 anos", + "De 40 a 49 anos": "Feminino_40 a 49 anos", + "De 50 a 54 anos": "Feminino_50 a 54 anos", + "De 55 a 59 anos": "Feminino_55 a 59 anos", + "60 anos ou mais": "Feminino_60 anos ou mais", + "Até 24 anos.1": "Masculino_Até 24 anos", + "De 25 a 29 anos.1": "Masculino_25 a 29 anos", + "De 30 a 39 anos.1": "Masculino_30 a 39 anos", + "De 40 a 49 anos.1": "Masculino_40 a 49 anos", + "De 50 a 54 anos.1": "Masculino_50 a 54 anos", + "De 55 a 59 anos.1": "Masculino_55 a 59 anos", + "60 anos ou mais.1": "Masculino_60 anos ou mais", + }, +} + + +localizacao = { + "educacao_basica": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Basica"], + "chave": "2.3", + "valor": "Educacao Basica", + "skiprows": 8, + "table": "docente_faixa_etaria_sexo", + }, + "educacao_infantil_creche": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Infantil - Creche"], + #"chave": "2.9", + "chave": "2.8", # para anos anteriores a 2010 + "valor": "Educacao Infantil - Creche", + "skiprows": 8, + "table": "docente_faixa_etaria_sexo", + }, + "educacao_infantil_pre_escola": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Infantil - Pré-Escola"], + #"chave": "2.13", + "chave": "2.11", # Para anos anteriores a 2010 + "valor": "Educacao Infantil - Pré-Escola", + "skiprows": 8, + "table": "docente_faixa_etaria_sexo", + }, + "ensino_fundamental": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Ensino Fundamental"], + #"chave": "2.18", + "chave": "2.15", # Para anos anteriores a 2010 + "valor": "Ensino Fundamental", + "skiprows": 8, + "table": "docente_faixa_etaria_sexo", + }, + "ensino_fundamental_anos_iniciais": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Ensino Fundamental - Anos Iniciais"], + #"chave": "2.22", + "chave": "2.18", # Para anos anteriores a 2010 + "valor": "Ensino Fundamental - Anos Iniciais", + "skiprows": 8, + "table": "docente_faixa_etaria_sexo", + }, + "ensino_fundamental_anos_finais": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Ensino Fundamental - Anos Finais"], + # "chave": "2.26", + "chave": "2.21", # Para anos anteriores a 2010 + "valor": "Ensino Fundamental - Anos Finais", + "skiprows": 8, + "table": "docente_faixa_etaria_sexo", + }, + "ensino_medio": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Ensino Médio"], + #"chave": "2.30", + "chave": "2.24", # Para anos anteriores a 2010 + "valor": "Ensino Médio", + "skiprows": 8, + "table": "docente_faixa_etaria_sexo", + }, + "educacao_profissional": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Profissional"], + "chave": "2.35", + "chave": "2.28", # Para anos anteriores a 2010 + "valor": "Educacao Profissional", + "skiprows": 8, + "table": "docente_faixa_etaria_sexo", + }, + "EJA": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["EJA"], + #"chave": "2.40", + "chave": "2.32", # Para anos anteriores a 2010 + "valor": "EJA", + "skiprows": 8, + "table": "docente_faixa_etaria_sexo", + }, + "educacao_especial_classes_comuns": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Especial - Classes Comuns"], + #"chave": "2.46", + "chave": "2.37", # Para anos anteriores a 2010 + "valor": "Educacao Especial - Classes Comuns", + "skiprows": 8, + "table": "docente_faixa_etaria_sexo", + }, + "educacao_especial_classes_exclusivas": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE[ + "Educacao Especial - Classes Exclusivas" + ], + #"chave": "2.52", + #"chave": "2.51", # Para o ano de 2011 + "chave": "2.41", # Para o ano anteriores a 2010 + "valor": "Educacao Especial - Classes Exclusivas", + "skiprows": 8, + "table": "docente_faixa_etaria_sexo", + }, +} + + +def read_sheet( + table: str, ano: int, chave: str, valor: str, dicionario: dict, skiprows: int = 9 +) -> pd.DataFrame: + print("Tratando dados de", valor, ano) + path_excel = os.path.join( + INPUT, + # f"sinopse_estatística_educaç╞o_básica_{ano}", + # f"Sinopse_Estatistica_da_Educaç╞o_Basica_{ano}.xlsx", + f"Sinopse_Estatistica_da_Educaç╞o_Basica_{ano}", + f"Sinopse_Estatistica_da_Educaç╞o_Basica_{ano}.xlsx", + ) + df = pd.read_excel( + path_excel, + skiprows=skiprows, + sheet_name=chave, + ) + + sheets_etapa_ensino_serie = {chave: valor} + + dfs_faixa_etaria = { + name: pd.read_excel( + path_excel, + skiprows=skiprows, + sheet_name=sheet_name, + ) + for sheet_name, name in sheets_etapa_ensino_serie.items() + } + + dataframes = {} + for table_name, columns in dfs_faixa_etaria.items(): + df = pd.DataFrame(columns) + dataframes[table_name] = df + + print(df.columns) + + def drop_unused_columns(df: pd.DataFrame) -> pd.DataFrame: + cols_drop = [ + col + for col in df.columns + if col.startswith("Unnamed") or col.startswith("Total") + ] + + return df.drop(columns=cols_drop) + + dfs_faixa_etaria = { + name: drop_unused_columns( + df.rename(columns=RENAMES_ETAPA_ENSINO_SERIE[name], errors="raise") + ) + for name, df in dfs_faixa_etaria.items() + } + + df_faixa_etaria = pd.concat( + [ + df.pipe( + lambda d: d.loc[(d["id_municipio"].notna()) & (d["id_municipio"] != " "),] + ) + .pipe( + lambda d: pd.melt( + d, + id_vars=["id_municipio", "uf"], + value_vars=d.columns.difference( + ["id_municipio", "uf"] + ).tolist(), # Convert to list + var_name="faixa_etaria", + value_name="quantidade_docente", + ) + ) + .assign(tipo_classe=tipo_classe) + for tipo_classe, df in dfs_faixa_etaria.items() + ] + ) + + bd_dir = bd.read_sql( + "SELECT nome, sigla FROM `basedosdados.br_bd_diretorios_brasil.uf`", + billing_project_id="basedosdados", + reauth=False, + ) + + df_faixa_etaria["uf"] = ( + df_faixa_etaria["uf"] + .apply(lambda uf: uf.strip()) + .replace({i["nome"]: i["sigla"] for i in bd_dir.to_dict("records")}) # type: ignore + ) + + df_faixa_etaria = df_faixa_etaria.rename(columns={"uf": "sigla_uf"}, errors="raise") + + df_faixa_etaria["sexo"] = df_faixa_etaria["faixa_etaria"].apply( + lambda v: v.split("_")[-1] + ) + + df_faixa_etaria["faixa_etaria"] = df_faixa_etaria["faixa_etaria"].apply( + lambda v: v.split("_")[0] + ) + + df_faixa_etaria["quantidade_docente"] = df_faixa_etaria["quantidade_docente"].astype( + int + ) + + print("Particionando dados") + for sigla_uf, df in df_faixa_etaria.groupby("sigla_uf"): + path = os.path.join(OUTPUT, f"{table}", f"ano={ano}", f"sigla_uf={sigla_uf}") + if not os.path.exists(path): + os.makedirs(path, exist_ok=True) + df.drop(columns=["sigla_uf"]).to_csv( + os.path.join(path, "data.csv"), index=False, mode="w" + ) + else: + df.drop(columns=["sigla_uf"]).to_csv( + os.path.join(path, "data.csv"), index=False, mode="a", header=False + ) + + +lista = [ + "educacao_basica", + "educacao_infantil_creche", + "educacao_infantil_pre_escola", + "ensino_fundamental", + "ensino_fundamental_anos_iniciais", + "ensino_fundamental_anos_finais", + "ensino_medio", + "educacao_profissional", + "EJA", + "educacao_especial_classes_comuns", + "educacao_especial_classes_exclusivas", +] + +for x in lista: + read_sheet( + table=localizacao[x]["table"], + ano=2007, + chave=localizacao[x]["chave"], + valor=localizacao[x]["valor"], + dicionario=localizacao[x]["dicionario"], + skiprows=localizacao[x]["skiprows"], + ) diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_localizacao.py b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_localizacao.py new file mode 100644 index 00000000..5f5ef117 --- /dev/null +++ b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_localizacao.py @@ -0,0 +1,546 @@ +import os +import zipfile +import pandas as pd +import basedosdados as bd +import numpy as np + +pd.set_option("display.max_columns", None) +pd.set_option("display.max_rows", None) + +INPUT = os.path.join(os.getcwd(), "input") +OUTPUT = os.path.join(os.getcwd(), "output") + +# os.makedirs(INPUT, exist_ok=True) +# os.makedirs(OUTPUT, exist_ok=True) + +RENAMES_ETAPA_ENSINO_SERIE = { + "Educacao Basica": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Pública": "Dependência Administrativa_Pública", + "Federal": "Dependência Administrativa_Federal", + "Estadual": "Dependência Administrativa_Estadual", + "Municipal": "Dependência Administrativa_Municipal", + "Privada": "Dependência Administrativa_Privada", + "Pública.1": "Urbana_Pública", + "Federal.1": "Urbana_Federal", + "Estadual.1": "Urbana_Estadual", + "Municipal.1": "Urbana_Municipal", + "Privada.1": "Urbana_Privada", + "Pública.2": "Rural_Pública", + "Federal.2": "Rural_Federal", + "Estadual.2": "Rural_Estadual", + "Municipal.2": "Rural_Municipal", + "Privada.2": "Rural_Privada", + }, + "Educacao Infantil": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Pública": "Dependência Administrativa_Pública", + "Federal": "Dependência Administrativa_Federal", + "Estadual": "Dependência Administrativa_Estadual", + "Municipal": "Dependência Administrativa_Municipal", + "Privada": "Dependência Administrativa_Privada", + "Pública.1": "Urbana_Pública", + "Federal.1": "Urbana_Federal", + "Estadual.1": "Urbana_Estadual", + "Municipal.1": "Urbana_Municipal", + "Privada.1": "Urbana_Privada", + "Pública.2": "Rural_Pública", + "Federal.2": "Rural_Federal", + "Estadual.2": "Rural_Estadual", + "Municipal.2": "Rural_Municipal", + "Privada.2": "Rural_Privada", + }, + "Educacao Infantil - Creche": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Pública": "Dependência Administrativa_Pública", + "Federal": "Dependência Administrativa_Federal", + "Estadual": "Dependência Administrativa_Estadual", + "Municipal": "Dependência Administrativa_Municipal", + "Privada": "Dependência Administrativa_Privada", + "Pública.1": "Urbana_Pública", + "Federal.1": "Urbana_Federal", + "Estadual.1": "Urbana_Estadual", + "Municipal.1": "Urbana_Municipal", + "Privada.1": "Urbana_Privada", + "Pública.2": "Rural_Pública", + "Federal.2": "Rural_Federal", + "Estadual.2": "Rural_Estadual", + "Municipal.2": "Rural_Municipal", + "Privada.2": "Rural_Privada", + #### + # Para 2014 + #### + # "Unnamed: 1": "uf", + # "Unnamed: 3": "id_municipio", + # "Pública ": "Dependência Administrativa_Pública", + # "Federal": "Dependência Administrativa_Federal", + # "Estadual": "Dependência Administrativa_Estadual", + # "Municipal": "Dependência Administrativa_Municipal", + # "Privada": "Dependência Administrativa_Privada", + # "Pública": "Urbana_Pública", + # "Federal.1": "Urbana_Federal", + # "Estadual.1": "Urbana_Estadual", + # "Municipal.1": "Urbana_Municipal", + # "Privada.1": "Urbana_Privada", + # "Pública.1": "Rural_Pública", + # "Federal.2": "Rural_Federal", + # "Estadual.2": "Rural_Estadual", + # "Municipal.2": "Rural_Municipal", + # "Privada.2": "Rural_Privada", + }, + "Educacao Infantil - Pré-Escola": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Pública": "Dependência Administrativa_Pública", + "Federal": "Dependência Administrativa_Federal", + "Estadual": "Dependência Administrativa_Estadual", + "Municipal": "Dependência Administrativa_Municipal", + "Privada": "Dependência Administrativa_Privada", + "Pública.1": "Urbana_Pública", + "Federal.1": "Urbana_Federal", + "Estadual.1": "Urbana_Estadual", + "Municipal.1": "Urbana_Municipal", + "Privada.1": "Urbana_Privada", + "Pública.2": "Rural_Pública", + "Federal.2": "Rural_Federal", + "Estadual.2": "Rural_Estadual", + "Municipal.2": "Rural_Municipal", + "Privada.2": "Rural_Privada", + }, + "Ensino Fundamental": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Pública": "Dependência Administrativa_Pública", + "Federal": "Dependência Administrativa_Federal", + "Estadual": "Dependência Administrativa_Estadual", + "Municipal": "Dependência Administrativa_Municipal", + "Privada": "Dependência Administrativa_Privada", + "Pública.1": "Urbana_Pública", + "Federal.1": "Urbana_Federal", + "Estadual.1": "Urbana_Estadual", + "Municipal.1": "Urbana_Municipal", + "Privada.1": "Urbana_Privada", + "Pública.2": "Rural_Pública", + "Federal.2": "Rural_Federal", + "Estadual.2": "Rural_Estadual", + "Municipal.2": "Rural_Municipal", + "Privada.2": "Rural_Privada", + }, + "Ensino Fundamental - Anos Iniciais": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Pública": "Dependência Administrativa_Pública", + "Federal": "Dependência Administrativa_Federal", + "Estadual": "Dependência Administrativa_Estadual", + "Municipal": "Dependência Administrativa_Municipal", + "Privada": "Dependência Administrativa_Privada", + "Pública.1": "Urbana_Pública", + "Federal.1": "Urbana_Federal", + "Estadual.1": "Urbana_Estadual", + "Municipal.1": "Urbana_Municipal", + "Privada.1": "Urbana_Privada", + "Pública.2": "Rural_Pública", + "Federal.2": "Rural_Federal", + "Estadual.2": "Rural_Estadual", + "Municipal.2": "Rural_Municipal", + "Privada.2": "Rural_Privada", + }, + "Ensino Fundamental - Anos Finais": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Pública": "Dependência Administrativa_Pública", + "Federal": "Dependência Administrativa_Federal", + "Estadual": "Dependência Administrativa_Estadual", + "Municipal": "Dependência Administrativa_Municipal", + "Privada": "Dependência Administrativa_Privada", + "Pública.1": "Urbana_Pública", + "Federal.1": "Urbana_Federal", + "Estadual.1": "Urbana_Estadual", + "Municipal.1": "Urbana_Municipal", + "Privada.1": "Urbana_Privada", + "Pública.2": "Rural_Pública", + "Federal.2": "Rural_Federal", + "Estadual.2": "Rural_Estadual", + "Municipal.2": "Rural_Municipal", + "Privada.2": "Rural_Privada", + }, + "Ensino Médio": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Pública": "Dependência Administrativa_Pública", + "Federal": "Dependência Administrativa_Federal", + "Estadual": "Dependência Administrativa_Estadual", + "Municipal": "Dependência Administrativa_Municipal", + "Privada": "Dependência Administrativa_Privada", + "Pública.1": "Urbana_Pública", + "Federal.1": "Urbana_Federal", + "Estadual.1": "Urbana_Estadual", + "Municipal.1": "Urbana_Municipal", + "Privada.1": "Urbana_Privada", + "Pública.2": "Rural_Pública", + "Federal.2": "Rural_Federal", + "Estadual.2": "Rural_Estadual", + "Municipal.2": "Rural_Municipal", + "Privada.2": "Rural_Privada", + }, + "Educacao Profissional": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Pública": "Dependência Administrativa_Pública", + "Federal": "Dependência Administrativa_Federal", + "Estadual": "Dependência Administrativa_Estadual", + "Municipal": "Dependência Administrativa_Municipal", + "Privada": "Dependência Administrativa_Privada", + "Pública.1": "Urbana_Pública", + "Federal.1": "Urbana_Federal", + "Estadual.1": "Urbana_Estadual", + "Municipal.1": "Urbana_Municipal", + "Privada.1": "Urbana_Privada", + "Pública.2": "Rural_Pública", + "Federal.2": "Rural_Federal", + "Estadual.2": "Rural_Estadual", + "Municipal.2": "Rural_Municipal", + "Privada.2": "Rural_Privada", + }, + "EJA": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Pública": "Dependência Administrativa_Pública", + "Federal": "Dependência Administrativa_Federal", + "Estadual": "Dependência Administrativa_Estadual", + "Municipal": "Dependência Administrativa_Municipal", + "Privada": "Dependência Administrativa_Privada", + "Pública.1": "Urbana_Pública", + "Federal.1": "Urbana_Federal", + "Estadual.1": "Urbana_Estadual", + "Municipal.1": "Urbana_Municipal", + "Privada.1": "Urbana_Privada", + "Pública.2": "Rural_Pública", + "Federal.2": "Rural_Federal", + "Estadual.2": "Rural_Estadual", + "Municipal.2": "Rural_Municipal", + "Privada.2": "Rural_Privada", + #### + # Para 2014 + #### + # "Unnamed: 1": "uf", + # "Unnamed: 3": "id_municipio", + # "Publica ": "Dependência Administrativa_Pública", + # "Federal": "Dependência Administrativa_Federal", + # "Estadual": "Dependência Administrativa_Estadual", + # "Municipal": "Dependência Administrativa_Municipal", + # "Privada": "Dependência Administrativa_Privada", + # "Pública": "Urbana_Pública", + # "Federal.1": "Urbana_Federal", + # "Estadual.1": "Urbana_Estadual", + # "Municipal.1": "Urbana_Municipal", + # "Privada.1": "Urbana_Privada", + # "Pública.1": "Rural_Pública", + # "Federal.2": "Rural_Federal", + # "Estadual.2": "Rural_Estadual", + # "Municipal.2": "Rural_Municipal", + # "Privada.2": "Rural_Privada", + }, + "Educacao Especial - Classes Comuns": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Pública": "Dependência Administrativa_Pública", + "Federal": "Dependência Administrativa_Federal", + "Estadual": "Dependência Administrativa_Estadual", + "Municipal": "Dependência Administrativa_Municipal", + "Privada": "Dependência Administrativa_Privada", + "Pública.1": "Urbana_Pública", + "Federal.1": "Urbana_Federal", + "Estadual.1": "Urbana_Estadual", + "Municipal.1": "Urbana_Municipal", + "Privada.1": "Urbana_Privada", + "Pública.2": "Rural_Pública", + "Federal.2": "Rural_Federal", + "Estadual.2": "Rural_Estadual", + "Municipal.2": "Rural_Municipal", + "Privada.2": "Rural_Privada", + ##### + # Para 2014 + #### + # "Unnamed: 1": "uf", + # "Unnamed: 3": "id_municipio", + # "Pública ": "Dependência Administrativa_Pública", + # "Federal": "Dependência Administrativa_Federal", + # "Estadual": "Dependência Administrativa_Estadual", + # "Municipal": "Dependência Administrativa_Municipal", + # "Privada": "Dependência Administrativa_Privada", + # "Pública": "Urbana_Pública", + # "Federal.1": "Urbana_Federal", + # "Estadual.1": "Urbana_Estadual", + # "Municipal.1": "Urbana_Municipal", + # "Privada.1": "Urbana_Privada", + # "Pública.1": "Rural_Pública", + # "Federal.2": "Rural_Federal", + # "Estadual.2": "Rural_Estadual", + # "Municipal.2": "Rural_Municipal", + # "Privada.2": "Rural_Privada", + }, + "Educacao Especial - Classes Exclusivas": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Pública": "Dependência Administrativa_Pública", + "Federal": "Dependência Administrativa_Federal", + "Estadual": "Dependência Administrativa_Estadual", + "Municipal": "Dependência Administrativa_Municipal", + "Privada": "Dependência Administrativa_Privada", + "Pública.1": "Urbana_Pública", + "Federal.1": "Urbana_Federal", + "Estadual.1": "Urbana_Estadual", + "Municipal.1": "Urbana_Municipal", + "Privada.1": "Urbana_Privada", + "Pública.2": "Rural_Pública", + "Federal.2": "Rural_Federal", + "Estadual.2": "Rural_Estadual", + "Municipal.2": "Rural_Municipal", + "Privada.2": "Rural_Privada", + }, +} + + +localizacao = { + "educacao_basica": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Basica"], + "chave": "2.2", + "valor": "Educacao Basica", + "skiprows": 8, + "table": "docente_localizacao", + }, + "educacao_infantil": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Infantil"], + "chave": "2.6", # Para o ano de 2010 + #"chave": "2.7", + "valor": "Educacao Infantil", + "skiprows": 8, + "table": "docente_localizacao", + }, + "ensino_infantil_creche": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Infantil - Creche"], + "chave": "Creche 2.7", # Para o ano de 2010 + #"chave": "Creche 2.8", + "valor": "Educacao Infantil - Creche", + "skiprows": 8, + "table": "docente_localizacao", + }, + "educacao_infantil_pre_escola": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Infantil - Pré-Escola"], + "chave": "Pré-Escola 2.10", # Para o ano de 2010 + #"chave": "Pré-Escola 2.12", + "valor": "Educacao Infantil - Pré-Escola", + "skiprows": 8, + "table": "docente_localizacao", + }, + "ensino_fundamental": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Ensino Fundamental"], + #"chave": "2.17", + "chave": "2.14", # Para o ano de 2010 + "valor": "Ensino Fundamental", + "skiprows": 8, + "table": "docente_localizacao", + }, + "ensino_fundamental_anos_iniciais": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Ensino Fundamental - Anos Iniciais"], + #"chave": "Anos Iniciais 2.21", + "chave": "Anos Iniciais 2.17", # Para o ano de 2010 + "valor": "Ensino Fundamental - Anos Iniciais", + "skiprows": 8, + "table": "docente_localizacao", + }, + "ensino_fundamental_anos_finais": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Ensino Fundamental - Anos Finais"], + #"chave": "Anos Finais 2.25", + "chave": "Anos Finais 2.20", # Para o ano de 2010 + "valor": "Ensino Fundamental - Anos Finais", + "skiprows": 8, + "table": "docente_localizacao", + }, + "ensino_medio": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Ensino Médio"], + #"chave": "Ensino Médio 2.29", + "chave": "Ensino Médio 2.23", # Para o ano de 2010 + "valor": "Ensino Médio", + "skiprows": 8, + "table": "docente_localizacao", + }, + "educacao_profissional": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Profissional"], + #"chave": "2.34", + "chave": "2.27", # Para o ano de 2010 + "valor": "Educacao Profissional", + "skiprows": 8, + "table": "docente_localizacao", + }, + "EJA": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["EJA"], + #"chave": "2.39", + "chave": "2.31", # Para o ano de 2010 + "valor": "EJA", + "skiprows": 8, + "table": "docente_localizacao", + }, + "educacao_especial_classes_comuns": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Especial - Classes Comuns"], + #"chave": "2.45", + "chave": "2.36", # Para o ano de 2010 + "valor": "Educacao Especial - Classes Comuns", + "skiprows": 8, + "table": "docente_localizacao", + }, + "educacao_especial_classes_exclusivas": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE[ + "Educacao Especial - Classes Exclusivas" + ], + #"chave": "2.51", + #"chave": "2.50", # Para o ano de 2011 + "chave": "2.40", # Para o ano de 2010 + "valor": "Educacao Especial - Classes Exclusivas", + "skiprows": 8, + "table": "docente_localizacao", + }, +} + + +def read_sheet( + table: str, ano: int, chave: str, valor: str, dicionario: dict, skiprows: int = 9 +) -> pd.DataFrame: + print("Tratando dados de", valor, ano) + path_excel = os.path.join( + INPUT, + f"Sinopse_Estatistica_da_Educaç╞o_Basica_{ano}", + f"Sinopse_Estatistica_da_Educaç╞o_Basica_{ano}.xlsx", + ) + df = pd.read_excel( + path_excel, + skiprows=skiprows, + sheet_name=chave, + ) + + sheets_etapa_ensino_serie = {chave: valor} + + df_localizacao = { + name: pd.read_excel( + path_excel, + skiprows=skiprows, + sheet_name=sheet_name, + ) + for sheet_name, name in sheets_etapa_ensino_serie.items() + } + + dataframes = {} + for table_name, columns in df_localizacao.items(): + df = pd.DataFrame(columns) + dataframes[table_name] = df + + print(df.columns) + + def drop_unused_columns(df: pd.DataFrame) -> pd.DataFrame: + cols_drop = [ + col + for col in df.columns + if col.startswith("Unnamed") or col.startswith("Total") + ] + + return df.drop(columns=cols_drop) + + dfs_localizacao = { + name: drop_unused_columns(df.rename(columns=dicionario, errors="raise")) + for name, df in df_localizacao.items() + } + + df_localizacao = pd.concat( + [ + df.pipe( + lambda d: d.loc[(d["id_municipio"].notna()) & (d["id_municipio"] != " "),] + ) + .pipe( + lambda d: pd.melt( + d, + id_vars=["id_municipio", "uf"], + value_vars=d.columns.difference( + ["id_municipio", "uf"] + ).tolist(), # Convert to list + var_name="localizacao", + value_name="quantidade_docente", + ) + ) + .assign(tipo_classe=tipo_classe) + for tipo_classe, df in dfs_localizacao.items() + ] + ) + + bd_dir = bd.read_sql( + "SELECT nome, sigla FROM `basedosdados.br_bd_diretorios_brasil.uf`", + billing_project_id="basedosdados", + reauth=False, + ) + + df_localizacao["uf"] = ( + df_localizacao["uf"] + .apply(lambda uf: uf.strip()) + .replace({i["nome"]: i["sigla"] for i in bd_dir.to_dict("records")}) # type: ignore + ) + + df_localizacao = df_localizacao.rename(columns={"uf": "sigla_uf"}, errors="raise") + + df_localizacao["rede"] = df_localizacao["localizacao"].apply(lambda v: v.split("_")[-1]) + + df_localizacao["localizacao"] = df_localizacao["localizacao"].apply( + lambda v: v.split("_")[0] + ) + df_localizacao["quantidade_docente"] = df_localizacao["quantidade_docente"].astype(int) + + df_localizacao = df_localizacao[ + [ + "sigla_uf", + "id_municipio", + "tipo_classe", + "rede", + "localizacao", + "quantidade_docente", + ] + ] + + print("Particionando dados") + for sigla_uf, df in df_localizacao.groupby("sigla_uf"): + path = os.path.join(OUTPUT, f"{table}", f"ano={ano}", f"sigla_uf={sigla_uf}") + if not os.path.exists(path): + os.makedirs(path, exist_ok=True) + df.drop(columns=["sigla_uf"]).to_csv( + os.path.join(path, "data.csv"), index=False, mode="w" + ) + else: + df.drop(columns=["sigla_uf"]).to_csv( + os.path.join(path, "data.csv"), index=False, mode="a", header=False + ) + +lista = [ + "educacao_basica", + "educacao_infantil", + "ensino_infantil_creche", + "educacao_infantil_pre_escola", + "ensino_fundamental", + "ensino_fundamental_anos_iniciais", + "ensino_fundamental_anos_finais", + "ensino_medio", + "educacao_profissional", + "EJA", + "educacao_especial_classes_comuns", + "educacao_especial_classes_exclusivas" +] + +for x in lista: + read_sheet( + table=localizacao[x]["table"], + ano=2007, + chave=localizacao[x]["chave"], + valor=localizacao[x]["valor"], + dicionario=localizacao[x]["dicionario"], + skiprows=localizacao[x]["skiprows"], + ) diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_regime_contratacao.py b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_regime_contratacao.py new file mode 100644 index 00000000..ec7c2398 --- /dev/null +++ b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_regime_contratacao.py @@ -0,0 +1,588 @@ +import os +import zipfile +import pandas as pd +import basedosdados as bd +import numpy as np + +pd.set_option("display.max_columns", None) +pd.set_option("display.max_rows", None) + +INPUT = os.path.join(os.getcwd(), "input") +OUTPUT = os.path.join(os.getcwd(), "output") + +# os.makedirs(INPUT, exist_ok=True) +# os.makedirs(OUTPUT, exist_ok=True) + +##### +# Para anos anteriores a 2011 +##### + +# RENAMES_CONTRATO = { +# "Educacao Basica": { +# "Unnamed: 1": "uf", +# "Unnamed: 3": "id_municipio", +# "Federal": "Concursado_Federal", +# "Estadual": "Concursado_Estadual", +# "Municipal": "Concursado_Municipal", +# "Federal.1": "Contrato Temporário_Federal", +# "Estadual.1": "Contrato Temporário_Estadual", +# "Municipal.1": "Contrato Temporário_Municipal", +# "Federal.2": "Contrato Terceirizado_Federal", +# "Estadual.2": "Contrato Terceirizado_Estadual", +# "Municipal.2": "Contrato Terceirizado_Municipal", +# "Federal.3": "Contrato CLT_Federal", +# "Estadual.3": "Contrato CLT_Estadual", +# "Municipal.3": "Contrato CLT_Municipal", +# }, +# "Educacao Infantil - Creche": { +# "Unnamed: 1": "uf", +# "Unnamed: 3": "id_municipio", +# "Federal": "Concursado_Federal", +# "Estadual": "Concursado_Estadual", +# "Municipal": "Concursado_Municipal", +# "Federal.1": "Contrato Temporário_Federal", +# "Estadual.1": "Contrato Temporário_Estadual", +# "Municipal.1": "Contrato Temporário_Municipal", +# "Federal.2": "Contrato Terceirizado_Federal", +# "Estadual.2": "Contrato Terceirizado_Estadual", +# "Municipal.2": "Contrato Terceirizado_Municipal", +# "Federal.3": "Contrato CLT_Federal", +# "Estadual.3": "Contrato CLT_Estadual", +# "Municipal.3": "Contrato CLT_Municipal", +# }, +# "Educacao Infantil - Pré-Escola": { +# "Unnamed: 1": "uf", +# "Unnamed: 3": "id_municipio", +# "Federal": "Concursado_Federal", +# "Estadual": "Concursado_Estadual", +# "Municipal": "Concursado_Municipal", +# "Federal.1": "Contrato Temporário_Federal", +# "Estadual.1": "Contrato Temporário_Estadual", +# "Municipal.1": "Contrato Temporário_Municipal", +# "Federal.2": "Contrato Terceirizado_Federal", +# "Estadual.2": "Contrato Terceirizado_Estadual", +# "Municipal.2": "Contrato Terceirizado_Municipal", +# "Federal.3": "Contrato CLT_Federal", +# "Estadual.3": "Contrato CLT_Estadual", +# "Municipal.3": "Contrato CLT_Municipal", +# }, +# "Ensino Fundamental": { +# "Unnamed: 1": "uf", +# "Unnamed: 3": "id_municipio", +# "Federal": "Concursado_Federal", +# "Estadual": "Concursado_Estadual", +# "Municipal": "Concursado_Municipal", +# "Federal.1": "Contrato Temporário_Federal", +# "Estadual.1": "Contrato Temporário_Estadual", +# "Municipal.1": "Contrato Temporário_Municipal", +# "Federal.2": "Contrato Terceirizado_Federal", +# "Estadual.2": "Contrato Terceirizado_Estadual", +# "Municipal.2": "Contrato Terceirizado_Municipal", +# "Federal.3": "Contrato CLT_Federal", +# "Estadual.3": "Contrato CLT_Estadual", +# "Municipal.3": "Contrato CLT_Municipal", +# }, +# "Ensino Fundamental - Anos Iniciais": { +# "Unnamed: 1": "uf", +# "Unnamed: 3": "id_municipio", +# "Federal": "Concursado_Federal", +# "Estadual": "Concursado_Estadual", +# "Municipal": "Concursado_Municipal", +# "Federal.1": "Contrato Temporário_Federal", +# "Estadual.1": "Contrato Temporário_Estadual", +# "Municipal.1": "Contrato Temporário_Municipal", +# "Federal.2": "Contrato Terceirizado_Federal", +# "Estadual.2": "Contrato Terceirizado_Estadual", +# "Municipal.2": "Contrato Terceirizado_Municipal", +# "Federal.3": "Contrato CLT_Federal", +# "Estadual.3": "Contrato CLT_Estadual", +# "Municipal.3": "Contrato CLT_Municipal", +# }, +# "Ensino Fundamental - Anos Finais": { +# "Unnamed: 1": "uf", +# "Unnamed: 3": "id_municipio", +# "Federal": "Concursado_Federal", +# "Estadual": "Concursado_Estadual", +# "Municipal": "Concursado_Municipal", +# "Federal.1": "Contrato Temporário_Federal", +# "Estadual.1": "Contrato Temporário_Estadual", +# "Municipal.1": "Contrato Temporário_Municipal", +# "Federal.2": "Contrato Terceirizado_Federal", +# "Estadual.2": "Contrato Terceirizado_Estadual", +# "Municipal.2": "Contrato Terceirizado_Municipal", +# "Federal.3": "Contrato CLT_Federal", +# "Estadual.3": "Contrato CLT_Estadual", +# "Municipal.3": "Contrato CLT_Municipal", +# }, +# "Ensino Médio": { +# "Unnamed: 1": "uf", +# "Unnamed: 3": "id_municipio", +# "Federal": "Concursado_Federal", +# "Estadual": "Concursado_Estadual", +# "Municipal": "Concursado_Municipal", +# "Federal.1": "Contrato Temporário_Federal", +# "Estadual.1": "Contrato Temporário_Estadual", +# "Municipal.1": "Contrato Temporário_Municipal", +# "Federal.2": "Contrato Terceirizado_Federal", +# "Estadual.2": "Contrato Terceirizado_Estadual", +# "Municipal.2": "Contrato Terceirizado_Municipal", +# "Federal.3": "Contrato CLT_Federal", +# "Estadual.3": "Contrato CLT_Estadual", +# "Municipal.3": "Contrato CLT_Municipal", +# }, +# "Educacao Profissional": { +# "Unnamed: 1": "uf", +# "Unnamed: 3": "id_municipio", +# "Federal": "Concursado_Federal", +# "Estadual": "Concursado_Estadual", +# "Municipal": "Concursado_Municipal", +# "Federal.1": "Contrato Temporário_Federal", +# "Estadual.1": "Contrato Temporário_Estadual", +# "Municipal.1": "Contrato Temporário_Municipal", +# "Federal.2": "Contrato Terceirizado_Federal", +# "Estadual.2": "Contrato Terceirizado_Estadual", +# "Municipal.2": "Contrato Terceirizado_Municipal", +# "Federal.3": "Contrato CLT_Federal", +# "Estadual.3": "Contrato CLT_Estadual", +# "Municipal.3": "Contrato CLT_Municipal", +# }, +# "EJA": { +# "Unnamed: 1": "uf", +# "Unnamed: 3": "id_municipio", +# "Federal": "Concursado_Federal", +# "Estadual": "Concursado_Estadual", +# "Municipal": "Concursado_Municipal", +# "Federal.1": "Contrato Temporário_Federal", +# "Estadual.1": "Contrato Temporário_Estadual", +# "Municipal.1": "Contrato Temporário_Municipal", +# "Federal.2": "Contrato Terceirizado_Federal", +# "Estadual.2": "Contrato Terceirizado_Estadual", +# "Municipal.2": "Contrato Terceirizado_Municipal", +# "Federal.3": "Contrato CLT_Federal", +# "Estadual.3": "Contrato CLT_Estadual", +# "Municipal.3": "Contrato CLT_Municipal", +# }, +# "Educacao Especial - Classes Comuns": { +# "Unnamed: 1": "uf", +# "Unnamed: 3": "id_municipio", +# "Federal": "Concursado_Federal", +# "Estadual": "Concursado_Estadual", +# "Municipal": "Concursado_Municipal", +# "Federal.1": "Contrato Temporário_Federal", +# "Estadual.1": "Contrato Temporário_Estadual", +# "Municipal.1": "Contrato Temporário_Municipal", +# "Federal.2": "Contrato Terceirizado_Federal", +# "Estadual.2": "Contrato Terceirizado_Estadual", +# "Municipal.2": "Contrato Terceirizado_Municipal", +# "Federal.3": "Contrato CLT_Federal", +# "Estadual.3": "Contrato CLT_Estadual", +# "Municipal.3": "Contrato CLT_Municipal", +# }, +# "Educacao Especial - Classes Exclusivas": { +# "Unnamed: 1": "uf", +# "Unnamed: 3": "id_municipio", +# "Federal": "Concursado_Federal", +# "Estadual": "Concursado_Estadual", +# "Municipal": "Concursado_Municipal", +# "Federal.1": "Contrato Temporário_Federal", +# "Estadual.1": "Contrato Temporário_Estadual", +# "Municipal.1": "Contrato Temporário_Municipal", +# "Federal.2": "Contrato Terceirizado_Federal", +# "Estadual.2": "Contrato Terceirizado_Estadual", +# "Municipal.2": "Contrato Terceirizado_Municipal", +# "Federal.3": "Contrato CLT_Federal", +# "Estadual.3": "Contrato CLT_Estadual", +# "Municipal.3": "Contrato CLT_Municipal", +# }, +# } + +RENAMES_CONTRATO = { # Para anos anteriores a 2011 + "Educacao Basica": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Federal": "Concursado_Federal", + "Estadual": "Concursado_Estadual", + "Municipal": "Concursado_Municipal", + "Federal.1": "Contrato Temporário_Federal", + "Estadual.1": "Contrato Temporário_Estadual", + "Municipal.1": "Contrato Temporário_Municipal", + "Federal.2": "Contrato Terceirizado_Federal", + "Estadual.2": "Contrato Terceirizado_Estadual", + "Municipal.2": "Contrato Terceirizado_Municipal", + + }, + "Educacao Infantil - Creche": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Federal": "Concursado_Federal", + "Estadual": "Concursado_Estadual", + "Municipal": "Concursado_Municipal", + "Federal.1": "Contrato Temporário_Federal", + "Estadual.1": "Contrato Temporário_Estadual", + "Municipal.1": "Contrato Temporário_Municipal", + "Federal.2": "Contrato Terceirizado_Federal", + "Estadual.2": "Contrato Terceirizado_Estadual", + "Municipal.2": "Contrato Terceirizado_Municipal", + + }, + "Educacao Infantil - Pré-Escola": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Federal": "Concursado_Federal", + "Estadual": "Concursado_Estadual", + "Municipal": "Concursado_Municipal", + "Federal.1": "Contrato Temporário_Federal", + "Estadual.1": "Contrato Temporário_Estadual", + "Municipal.1": "Contrato Temporário_Municipal", + "Federal.2": "Contrato Terceirizado_Federal", + "Estadual.2": "Contrato Terceirizado_Estadual", + "Municipal.2": "Contrato Terceirizado_Municipal", + + }, + "Ensino Fundamental": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Federal": "Concursado_Federal", + "Estadual": "Concursado_Estadual", + "Municipal": "Concursado_Municipal", + "Federal.1": "Contrato Temporário_Federal", + "Estadual.1": "Contrato Temporário_Estadual", + "Municipal.1": "Contrato Temporário_Municipal", + "Federal.2": "Contrato Terceirizado_Federal", + "Estadual.2": "Contrato Terceirizado_Estadual", + "Municipal.2": "Contrato Terceirizado_Municipal", + + }, + "Ensino Fundamental - Anos Iniciais": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Federal": "Concursado_Federal", + "Estadual": "Concursado_Estadual", + "Municipal": "Concursado_Municipal", + "Federal.1": "Contrato Temporário_Federal", + "Estadual.1": "Contrato Temporário_Estadual", + "Municipal.1": "Contrato Temporário_Municipal", + "Federal.2": "Contrato Terceirizado_Federal", + "Estadual.2": "Contrato Terceirizado_Estadual", + "Municipal.2": "Contrato Terceirizado_Municipal", + + }, + "Ensino Fundamental - Anos Finais": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Federal": "Concursado_Federal", + "Estadual": "Concursado_Estadual", + "Municipal": "Concursado_Municipal", + "Federal.1": "Contrato Temporário_Federal", + "Estadual.1": "Contrato Temporário_Estadual", + "Municipal.1": "Contrato Temporário_Municipal", + "Federal.2": "Contrato Terceirizado_Federal", + "Estadual.2": "Contrato Terceirizado_Estadual", + "Municipal.2": "Contrato Terceirizado_Municipal", + + }, + "Ensino Médio": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Federal": "Concursado_Federal", + "Estadual": "Concursado_Estadual", + "Municipal": "Concursado_Municipal", + "Federal.1": "Contrato Temporário_Federal", + "Estadual.1": "Contrato Temporário_Estadual", + "Municipal.1": "Contrato Temporário_Municipal", + "Federal.2": "Contrato Terceirizado_Federal", + "Estadual.2": "Contrato Terceirizado_Estadual", + "Municipal.2": "Contrato Terceirizado_Municipal", + + }, + "Educacao Profissional": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Federal": "Concursado_Federal", + "Estadual": "Concursado_Estadual", + "Municipal": "Concursado_Municipal", + "Federal.1": "Contrato Temporário_Federal", + "Estadual.1": "Contrato Temporário_Estadual", + "Municipal.1": "Contrato Temporário_Municipal", + "Federal.2": "Contrato Terceirizado_Federal", + "Estadual.2": "Contrato Terceirizado_Estadual", + "Municipal.2": "Contrato Terceirizado_Municipal", + + }, + "EJA": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Federal": "Concursado_Federal", + "Estadual": "Concursado_Estadual", + "Municipal": "Concursado_Municipal", + "Federal.1": "Contrato Temporário_Federal", + "Estadual.1": "Contrato Temporário_Estadual", + "Municipal.1": "Contrato Temporário_Municipal", + "Federal.2": "Contrato Terceirizado_Federal", + "Estadual.2": "Contrato Terceirizado_Estadual", + "Municipal.2": "Contrato Terceirizado_Municipal", + + }, + "Educacao Especial - Classes Comuns": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Federal": "Concursado_Federal", + "Estadual": "Concursado_Estadual", + "Municipal": "Concursado_Municipal", + "Federal.1": "Contrato Temporário_Federal", + "Estadual.1": "Contrato Temporário_Estadual", + "Municipal.1": "Contrato Temporário_Municipal", + "Federal.2": "Contrato Terceirizado_Federal", + "Estadual.2": "Contrato Terceirizado_Estadual", + "Municipal.2": "Contrato Terceirizado_Municipal", + + }, + "Educacao Especial - Classes Exclusivas": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Federal": "Concursado_Federal", + "Estadual": "Concursado_Estadual", + "Municipal": "Concursado_Municipal", + "Federal.1": "Contrato Temporário_Federal", + "Estadual.1": "Contrato Temporário_Estadual", + "Municipal.1": "Contrato Temporário_Municipal", + "Federal.2": "Contrato Terceirizado_Federal", + "Estadual.2": "Contrato Terceirizado_Estadual", + "Municipal.2": "Contrato Terceirizado_Municipal", + + }, +} + + +regime_contrato = { + "educacao_basica": { + "dicionario": RENAMES_CONTRATO["Educacao Basica"], + "chave": "2.5", + "valor": "Educacao Basica", + # "skiprows": 8, + "skiprows": 9, # Para o ano de 2021 + "table": "docente_regime_contrato", + }, + "ensino_infantil_creche": { + "dicionario": RENAMES_CONTRATO["Educacao Infantil - Creche"], + "chave": "2.11", + "valor": "Educacao Infantil - Creche", + # "skiprows": 8, + "skiprows": 9, # Para o ano de 2021 + "table": "docente_regime_contrato", + }, + "educacao_infantil_pre_escola": { + "dicionario": RENAMES_CONTRATO["Educacao Infantil - Pré-Escola"], + "chave": "2.15", + "valor": "Educacao Infantil - Pré-Escola", + # "skiprows": 8, + "skiprows": 9, # Para o ano de 2021 + "table": "docente_regime_contrato", + }, + "ensino_fundamental": { + "dicionario": RENAMES_CONTRATO["Ensino Fundamental"], + "chave": "2.20", + "valor": "Ensino Fundamental", + # "skiprows": 8, + "skiprows": 9, # Para o ano de 2021 + "table": "docente_regime_contrato", + }, + "ensino_fundamental_anos_iniciais": { + "dicionario": RENAMES_CONTRATO["Ensino Fundamental - Anos Iniciais"], + "chave": "2.24", + "valor": "Ensino Fundamental - Anos Iniciais", + # "skiprows": 8, + "skiprows": 9, # Para o ano de 2021 + "table": "docente_regime_contrato", + }, + "ensino_fundamental_anos_finais": { + "dicionario": RENAMES_CONTRATO["Ensino Fundamental - Anos Finais"], + "chave": "2.28", + "valor": "Ensino Fundamental - Anos Finais", + # "skiprows": 8, + "skiprows": 9, # Para o ano de 2021 + "table": "docente_regime_contrato", + }, + "ensino_medio": { + "dicionario": RENAMES_CONTRATO["Ensino Médio"], + "chave": "2.32", + "valor": "Ensino Médio", + # "skiprows": 8, + "skiprows": 9, # Para o ano de 2021 + "table": "docente_regime_contrato", + }, + "educacao_profissional": { + "dicionario": RENAMES_CONTRATO["Educacao Profissional"], + "chave": "2.37", + "valor": "Educacao Profissional", + # "skiprows": 8, + "skiprows": 9, # Para o ano de 2021 + "table": "docente_regime_contrato", + }, + "EJA": { + "dicionario": RENAMES_CONTRATO["EJA"], + "chave": "2.42", + "valor": "EJA", + # "skiprows": 8, + "skiprows": 9, # Para o ano de 2021 + "table": "docente_regime_contrato", + }, + "educacao_especial_classes_comuns": { + "dicionario": RENAMES_CONTRATO["Educacao Especial - Classes Comuns"], + # "chave": "2.49", + "chave": "2.48", # Para o ano de 2010 + "valor": "Educacao Especial - Classes Comuns", + # "skiprows": 8, + "skiprows": 9, # Para o ano de 2021 + #"skiprows": 10, # Para o ano de 2011 + "table": "docente_regime_contrato", + }, + "educacao_especial_classes_exclusivas": { + "dicionario": RENAMES_CONTRATO["Educacao Especial - Classes Exclusivas"], + # "chave": "2.55", + "chave": "2.53", # Para o ano de 2021 + "valor": "Educacao Especial - Classes Exclusivas", + # "skiprows": 8, + "skiprows": 9, # Para o ano de 2021 + #"skiprows": 10, # Para o ano de 2011 + "table": "docente_regime_contrato", + }, +} + + +def read_sheet( + table: str, ano: int, chave: str, valor: str, dicionario: dict, skiprows +) -> pd.DataFrame: + print("Tratando dados de", valor, ano) + path_excel = os.path.join( + INPUT, + f"Sinopse_Estatistica_da_Educaç╞o_Basica_{ano}", + f"Sinopse_Estatistica_da_Educaç╞o_Basica_{ano}.xlsx", + ) + + df = pd.read_excel( + path_excel, + skiprows=skiprows, + sheet_name=chave, + ) + + sheets_etapa_ensino_serie = {chave: valor} + + dfs_regime_contrato = { + name: pd.read_excel( + path_excel, skiprows=skiprows, sheet_name=sheet_name + ) + for sheet_name, name in sheets_etapa_ensino_serie.items() + } + + dataframes = {} + + for table_name, columns in dfs_regime_contrato.items(): + df = pd.DataFrame(columns) # Create DataFrame for each table + dataframes[table_name] = df # Store the DataFrame in a dictionary + + print(df.columns) + + def drop_unused_columns(df: pd.DataFrame) -> pd.DataFrame: + cols_drop = [ + col + for col in df.columns + if col.startswith("Unnamed") or col.startswith("Total") + ] + + return df.drop(columns=cols_drop) + + dfs_regime_contrato = { + name: drop_unused_columns(df.rename(columns=dicionario, errors="raise")) + for name, df in dfs_regime_contrato.items() + } + + df_regime_contrato = pd.concat( + [ + df.pipe( + lambda d: d.loc[ + (d["id_municipio"].notna()) & (d["id_municipio"] != " "), + ] + ) + .pipe( + lambda d: pd.melt( + d, + id_vars=["id_municipio", "uf"], + value_vars=d.columns.difference( + ["id_municipio", "uf"] + ).tolist(), # Convert to list + var_name="regime_contrato", + value_name="quantidade_docente", + ) + ) + .assign(tipo_classe=tipo_classe) + for tipo_classe, df in dfs_regime_contrato.items() + ] + ) + + bd_dir = bd.read_sql( + "SELECT nome, sigla FROM `basedosdados.br_bd_diretorios_brasil.uf`", + billing_project_id="basedosdados", + reauth=False, + ) + + df_regime_contrato["uf"] = df_regime_contrato["uf"].apply(lambda uf: uf.strip()).replace({i["nome"]: i["sigla"] for i in bd_dir.to_dict("records")}) # type: ignore + + df_regime_contrato = df_regime_contrato.rename( + columns={"uf": "sigla_uf"}, errors="raise" + ) + + df_regime_contrato["rede"] = df_regime_contrato["regime_contrato"].apply( + lambda v: v.split("_")[-1] + ) + + df_regime_contrato["regime_contrato"] = df_regime_contrato["regime_contrato"].apply( + lambda v: v.split("_")[0] + ) + + df_regime_contrato["quantidade_docente"] = df_regime_contrato[ + "quantidade_docente" + ].astype(int) + + df_regime_contrato["quantidade_docente"] = df_regime_contrato[ + "quantidade_docente" + ].astype(int) + + print("Particionando dados") + for sigla_uf, df in df_regime_contrato.groupby("sigla_uf"): + path = os.path.join(OUTPUT, f"{table}", f"ano={ano}", f"sigla_uf={sigla_uf}") + if not os.path.exists(path): + os.makedirs(path, exist_ok=True) + df.drop(columns=["sigla_uf"]).to_csv( + os.path.join(path, "data.csv"), index=False, mode="w" + ) + else: + df.drop(columns=["sigla_uf"]).to_csv( + os.path.join(path, "data.csv"), index=False, mode="a", header=False + ) + + +lista = [ + "educacao_basica", + "ensino_infantil_creche", + "educacao_infantil_pre_escola", + "ensino_fundamental", + "ensino_fundamental_anos_iniciais", + "ensino_fundamental_anos_finais", + "ensino_medio", + "educacao_profissional", + "EJA", + "educacao_especial_classes_comuns", + "educacao_especial_classes_exclusivas", +] + +for x in lista: + #for ano in range(2012, 2019): + read_sheet( + table=regime_contrato[x]["table"], + ano=2010, + chave=regime_contrato[x]["chave"], + valor=regime_contrato[x]["valor"], + dicionario=regime_contrato[x]["dicionario"], + skiprows=regime_contrato[x]["skiprows"], +) diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docentes_etapa_ensino.py b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docentes_etapa_ensino.py new file mode 100644 index 00000000..79a4c638 --- /dev/null +++ b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docentes_etapa_ensino.py @@ -0,0 +1,492 @@ +import os +import zipfile +import pandas as pd +import basedosdados as bd +import numpy as np + +pd.set_option("display.max_columns", None) +pd.set_option("display.max_rows", None) + +INPUT = os.path.join(os.getcwd(), "input") +OUTPUT = os.path.join(os.getcwd(), "output") + +# os.makedirs(INPUT, exist_ok=True) +# os.makedirs(OUTPUT, exist_ok=True) + +RENAMES_ETAPA_ENSINO_SERIE = { + "Educacao Basica": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Creche": "Educação Infantil - Creche", + "Pré-Escola11": "Educação Infantil - Pré Escola", + "Total12": "", + "Anos Iniciais13": "Ensino Fundamental - Anos Iniciais", + "Anos Finais14": "Ensino Fundamental - Anos Finais", + "Ensino Médio Propedêutico": "Ensino Médio - Propedêutico", + "Ensino Médio Normal/Magistério": "Ensino Médio - Normal/Magistério", + "Curso Técnico Integrado (Ensino Médio Integrado)": "Ensino Médio - Curso Técnico Integrado", + "Associada ao Ensino Médio18": "Educação Profissional Técnica de Nível Médio - Associada ao Ensino Médio", + "Curso Técnico Concomitante": "Educação Profissional Técnica de Nível Médio - Curso Técnico Concomitante", + "Curso Técnico Subsequente": "Educação Profissional Técnica de Nível Médio - Curso Técnico Subsequente", + "Curso Técnico Misto (Concomitante e Subsequente)": "Educação Profissional Técnica de Nível Médio - Curso Técnico Misto (Concomitante e Subsequente)", + "Curso FIC Concomitante": "Educação Profissional - Curso FIC Concomitante", + "Curso FIC Integrado na Modalidade EJA20": "Educação Profissional - Curso FIC Integrado na Modalidade EJA", + "Ensino Fundamental22": "EJA - Ensino Fundamental", + "Ensino Médio23": "EJA - Ensino Médio", + "Classes Comuns25": "Educação Especial - Classes Comuns", + "Classes Exclusivas26": "Educação Especial - Classes Exclusivas", + ##### + # Para valores anteriores a 2016 e 2013 + #### + # "Classes Comuns": "Educação Especial - Classes Comuns", + # "Classes Exclusivas": "Educação Especial - Classes Exclusivas", + }, + "Educacao Infantil": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Pública": "Creche - Pública", + "Federal": "Creche - Federal", + "Estadual": "Creche - Estadual", + "Municipal": "Creche - Municipal", + "Privada": "Creche - Privada", + "Pública.1": "Pré-Escola - Pública", + "Federal.1": "Pré-Escola - Federal", + "Estadual.1": "Pré-Escola - Estadual", + "Municipal.1": "Pré-Escola - Municipal", + "Privada.1": "Pré-Escola - Privada", + }, + "Ensino Fundamental": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Pública": "Anos Iniciais - Pública", + "Federal": "Anos Iniciais - Federal", + "Estadual": "Anos Iniciais - Estadual", + "Municipal": "Anos Iniciais - Municipal", + "Privada": "Anos Iniciais - Privada", + "Pública.1": "Anos Finais - Pública", + "Federal.1": "Anos Finais - Federal", + "Estadual.1": "Anos Finais - Estadual", + "Municipal.1": "Anos Finais - Municipal", + "Privada.1": "Anos Finais - Privada", + "Pública.2": "Turmas Multi - Pública", + "Federal.2": "Turmas Multi - Federal", + "Estadual.2": "Turmas Multi - Estadual", + "Municipal.2": "Turmas Multi - Municipal", + "Privada.2": "Turmas Multi - Privada", + }, + "Educacao Profissional": #{ + + # "Unnamed: 1": "uf", + # "Unnamed: 3": "id_municipio", + # "Pública": "Curso Técnico Integrado (Ensino Médio Integrado) - Pública", + # "Federal": "Curso Técnico Integrado (Ensino Médio Integrado) - Federal", + # "Estadual": "Curso Técnico Integrado (Ensino Médio Integrado) - Estadual", + # "Municipal": "Curso Técnico Integrado (Ensino Médio Integrado) - Municipal", + # "Privada": "Curso Técnico Integrado (Ensino Médio Integrado) - Privada", + # "Pública.1": "Ensino Médio Normal/Magistério - Pública", + # "Federal.1": "Ensino Médio Normal/Magistério - Federal", + # "Estadual.1": "Ensino Médio Normal/Magistério - Estadual", + # "Municipal.1": "Ensino Médio Normal/Magistério - Municipal", + # "Privada.1": "Ensino Médio Normal/Magistério - Privada", + # "Pública.2": "Curso Técnico Concomitante - Pública", + # "Federal.2": "Curso Técnico Concomitante - Federal", + # "Estadual.2": "Curso Técnico Concomitante - Estadual", + # "Municipal.2": "Curso Técnico Concomitante - Municipal", + # "Privada.2": "Curso Técnico Concomitante - Privada", + # "Pública.3": "Curso Técnico Subsequente - Pública", + # "Federal.3": "Curso Técnico Subsequente - Federal", + # "Estadual.3": "Curso Técnico Subsequente - Estadual", + # "Municipal.3": "Curso Técnico Subsequente - Municipal", + # "Privada.3": "Curso Técnico Subsequente - Privada", + # "Pública.4": "Curso Técnico Misto (Concomitante e Subsequente) - Pública", + # "Federal.4": "Curso Técnico Misto (Concomitante e Subsequente) - Federal", + # "Estadual.4": "Curso Técnico Misto (Concomitante e Subsequente) - Estadual", + # "Municipal.4": "Curso Técnico Misto (Concomitante e Subsequente) - Municipal", + # "Privada.4": "Curso Técnico Misto (Concomitante e Subsequente) - Privada", + # "Pública.5": "Curso Técnico Integrado a EJA - Pública", + # "Federal.5": "Curso Técnico Integrado a EJA - Federal", + # "Estadual.5": "Curso Técnico Integrado a EJA - Estadual", + # "Municipal.5": "Curso Técnico Integrado a EJA - Municipal", + # "Privada.5": "Curso Técnico Integrado a EJA - Privada", + # "Pública.6": "EJA Ensino Fundamental Projovem Urbano - Pública", + # "Federal.6": "EJA Ensino Fundamental Projovem Urbano - Federal", + # "Estadual.6": "EJA Ensino Fundamental Projovem Urbano - Estadual", + # "Municipal.6": "EJA Ensino Fundamental Projovem Urbano - Municipal", + # "Privada.6": "EJA Ensino Fundamental Projovem Urbano - Privada", + # "Pública.7": "Curso FIC Concomitante - Pública", + # "Federal.7": "Curso FIC Concomitante - Federal", + # "Estadual.7": "Curso FIC Concomitante - Estadual", + # "Municipal.7": "Curso FIC Concomitante - Municipal", + # "Privada.7": "Curso FIC Concomitante - Privada", + # "Pública.8": "Curso FIC Integrado na Modalidade EJA de Nível Fundamental - Pública", + # "Federal.8": "Curso FIC Integrado na Modalidade EJA de Nível Fundamental - Federal", + # "Estadual.8": "Curso FIC Integrado na Modalidade EJA de Nível Fundamental - Estadual", + # "Municipal.8": "Curso FIC Integrado na Modalidade EJA de Nível Fundamental - Municipal", + # "Privada.8": "Curso FIC Integrado na Modalidade EJA de Nível Fundamental - Privada", + # "Pública.9": "Curso FIC Integrado na Modalidade EJA de Nível Médio - Pública", + # "Federal.9": "Curso FIC Integrado na Modalidade EJA de Nível Médio - Federal", + # "Estadual.9": "Curso FIC Integrado na Modalidade EJA de Nível Médio - Estadual", + # "Municipal.9": "Curso FIC Integrado na Modalidade EJA de Nível Médio - Municipal", + # "Privada.9": "Curso FIC Integrado na Modalidade EJA de Nível Médio - Privada", + #}, + ##### + # Valores antes depois de 2018 + #### + { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Pública": "Curso Técnico Integrado (Ensino Médio Integrado) - Pública", + "Federal": "Curso Técnico Integrado (Ensino Médio Integrado) - Federal", + "Estadual": "Curso Técnico Integrado (Ensino Médio Integrado) - Estadual", + "Municipal": "Curso Técnico Integrado (Ensino Médio Integrado) - Municipal", + "Privada": "Curso Técnico Integrado (Ensino Médio Integrado) - Privada", + "Pública.1": "Ensino Médio Normal/Magistério - Pública", + "Federal.1": "Ensino Médio Normal/Magistério - Federal", + "Estadual.1": "Ensino Médio Normal/Magistério - Estadual", + "Municipal.1": "Ensino Médio Normal/Magistério - Municipal", + "Privada.1": "Ensino Médio Normal/Magistério - Privada", + "Pública.2": "Curso Técnico Concomitante - Pública", + "Federal.2": "Curso Técnico Concomitante - Federal", + "Estadual.2": "Curso Técnico Concomitante - Estadual", + "Municipal.2": "Curso Técnico Concomitante - Municipal", + "Privada.2": "Curso Técnico Concomitante - Privada", + "Pública.3": "Curso Técnico Subsequente - Pública", + "Federal.3": "Curso Técnico Subsequente - Federal", + "Estadual.3": "Curso Técnico Subsequente - Estadual", + "Municipal.3": "Curso Técnico Subsequente - Municipal", + "Privada.3": "Curso Técnico Subsequente - Privada", + "Pública.4": "Curso Técnico Misto (Concomitante e Subsequente) - Pública", + "Federal.4": "Curso Técnico Misto (Concomitante e Subsequente) - Federal", + "Estadual.4": "Curso Técnico Misto (Concomitante e Subsequente) - Estadual", + "Municipal.4": "Curso Técnico Misto (Concomitante e Subsequente) - Municipal", + "Privada.4": "Curso Técnico Misto (Concomitante e Subsequente) - Privada", + "Pública.5": "Curso Técnico Integrado a EJA - Pública", + "Federal.5": "Curso Técnico Integrado a EJA - Federal", + "Estadual.5": "Curso Técnico Integrado a EJA - Estadual", + "Municipal.5": "Curso Técnico Integrado a EJA - Municipal", + "Privada.5": "Curso Técnico Integrado a EJA - Privada", + "Pública.6": "Curso FIC Concomitante - Pública", + "Federal.6": "Curso FIC Concomitante - Federal", + "Estadual.6": "Curso FIC Concomitante - Estadual", + "Municipal.6": "Curso FIC Concomitante - Municipal", + "Privada.6": "Curso FIC Concomitante - Privada", + "Pública.7": "Curso FIC Integrado na Modalidade EJA de Nível Fundamental - Pública", + "Federal.7": "Curso FIC Integrado na Modalidade EJA de Nível Fundamental - Federal", + "Estadual.7": "Curso FIC Integrado na Modalidade EJA de Nível Fundamental - Estadual", + "Municipal.7": "Curso FIC Integrado na Modalidade EJA de Nível Fundamental - Municipal", + "Privada.7": "Curso FIC Integrado na Modalidade EJA de Nível Fundamental - Privada", + "Pública.8": "Curso FIC Integrado na Modalidade EJA de Nível Médio - Pública", + "Federal.8": "Curso FIC Integrado na Modalidade EJA de Nível Médio - Federal", + "Estadual.8": "Curso FIC Integrado na Modalidade EJA de Nível Médio - Estadual", + "Municipal.8": "Curso FIC Integrado na Modalidade EJA de Nível Médio - Municipal", + "Privada.8": "Curso FIC Integrado na Modalidade EJA de Nível Médio - Privada"}, + "EJA": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Pública": "Ensino Fundamental - Pública", + "Federal": "Ensino Fundamental - Federal", + "Estadual": "Ensino Fundamental - Estadual", + "Municipal": "Ensino Fundamental - Municipal", + "Privada": "Ensino Fundamental - Privada", + "Pública.1": "Ensino Médio - Pública", + "Federal.1": "Ensino Médio - Federal", + "Estadual.1": "Ensino Médio - Estadual", + "Municipal.1": "Ensino Médio - Municipal", + "Privada.1": "Ensino Médio - Privada", + }, + "Educacao Especial": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Creche": "Educação Infantil - Creche", + "Pré-Escola11": "Educação Infantil - Pré Escola", + "Anos Iniciais13": "Ensino Fundamental - Anos Iniciais", + "Anos Finais14": "Ensino Fundamental - Anos Finais", + "Ensino Médio Propedêutico": "Ensino Médio - Propedêutico", + "Ensino Médio Normal/Magistério": "Ensino Médio - Normal/Magistério", + "Curso Técnico Integrado (Ensino Médio Integrado)": "Ensino Médio - Curso Técnico Integrado", + "Associada ao Ensino Médio18": "Educação Profissional Técnica de Nível Médio - Associada ao Ensino Médio", + "Curso Técnico Concomitante": "Educação Profissional Técnica de Nível Médio - Curso Técnico Concomitante", + "Curso Técnico Subsequente": "Educação Profissional Técnica de Nível Médio - Curso Técnico Subsequente", + "Curso Técnico Misto (Concomitante e Subsequente)": "Educação Profissional Técnica de Nível Médio - Curso Técnico Misto (Concomitante e Subsequente)", + "Curso FIC Concomitante": "Educação Profissional - Curso FIC Concomitante", + "Curso FIC Integrado na Modalidade EJA20": "Educação Profissional - Curso FIC Integrado na Modalidade EJA", + "Ensino Fundamental22": "EJA - Ensino Fundamental", + "Ensino Médio23": "EJA - Ensino Médio", + "Classes Comuns25": "Educação Especial - Classes Comuns", + "Classes Exclusivas26": "Educação Especial - Classes Exclusivas", + ##### + # Para valores anteriores a 2016 e 2013 + #### + # "Classes Comuns": "Educação Especial - Classes Comuns", + # "Classes Exclusivas": "Educação Especial - Classes Exclusivas", + }, + "Educacao Especial - Classes Comuns": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Creche": "Educação Infantil - Creche", + "Pré-Escola11": "Educação Infantil - Pré Escola", + "Anos Iniciais13": "Ensino Fundamental - Anos Iniciais", + "Anos Finais14": "Ensino Fundamental - Anos Finais", + "Ensino Médio Propedêutico": "Ensino Médio - Propedêutico", + "Ensino Médio Normal/ Magistério": "Ensino Médio - Normal/Magistério", + "Ensino Médio Curso Técnico Integrado (Ensino Médio Integrado)": "Ensino Médio - Curso Técnico Integrado", + "Associada ao Ensino Médio18": "Educação Profissional Técnica de Nível Médio - Associada ao Ensino Médio", + "Curso Técnico Concomitante": "Educação Profissional Técnica de Nível Médio - Curso Técnico Concomitante", + "Curso Técnico Subsequente": "Educação Profissional Técnica de Nível Médio - Curso Técnico Subsequente", + "Curso Técnico Misto (Concomitante e Subsequente)": "Educação Profissional Técnica de Nível Médio - Curso Técnico Misto (Concomitante e Subsequente)", + "Curso FIC Concomitante": "Educação Profissional - Curso FIC Concomitante", + "Curso FIC Integrado na Modalidade EJA20": "Educação Profissional - Curso FIC Integrado na Modalidade EJA", + "Ensino Fundamental22": "EJA - Ensino Fundamental", + "Ensino Médio23": "EJA - Ensino Médio", + }, + "Educacao Especial - Classes Exclusivas": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Creche": "Educação Infantil - Creche", + "Pré-Escola11": "Educação Infantil - Pré Escola", + "Anos Iniciais13": "Ensino Fundamental - Anos Iniciais", + "Anos Finais14": "Ensino Fundamental - Anos Finais", + "Ensino Médio Propedêutico": "Ensino Médio - Propedêutico", + "Ensino Médio Normal/ Magistério": "Ensino Médio - Normal/Magistério", + "Curso Técnico Integrado (Ensino Médio Integrado)": "Ensino Médio - Curso Técnico Integrado", + "Associada ao Ensino Médio18": "Educação Profissional Técnica de Nível Médio - Associada ao Ensino Médio", + "Curso Técnico Concomitante": "Educação Profissional Técnica de Nível Médio - Curso Técnico Concomitante", + "Curso Técnico Subsequente": "Educação Profissional Técnica de Nível Médio - Curso Técnico Subsequente", + "Curso Técnico Misto (Concomitante e Subsequente)": "Educação Profissional Técnica de Nível Médio - Curso Técnico Misto (Concomitante e Subsequente)", + "Curso FIC Concomitante": "Educação Profissional - Curso FIC Concomitante", + "Curso FIC Integrado na Modalidade EJA20": "Educação Profissional - Curso FIC Integrado na Modalidade EJA", + "Ensino Fundamental22": "EJA - Ensino Fundamental", + "Ensino Médio23": "EJA - Ensino Médio", + }, + "Educacao Indigena": { + "Unnamed: 1": "uf", + "Unnamed: 3": "id_municipio", + "Creche": "Educação Infantil - Creche", + "Pré-Escola11": "Educação Infantil - Pré Escola", + "Anos Iniciais13": "Ensino Fundamental - Anos Iniciais", + "Anos Finais14": "Ensino Fundamental - Anos Finais", + "Ensino Médio Propedêutico": "Ensino Médio - Propedêutico", + "Ensino Médio Normal/Magistério": "Ensino Médio - Normal/Magistério", + "Curso Técnico Integrado (Ensino Médio Integrado)": "Ensino Médio - Curso Técnico Integrado", + "Associada ao Ensino Médio18": "Educação Profissional Técnica de Nível Médio - Associada ao Ensino Médio", + "Curso Técnico Concomitante": "Educação Profissional Técnica de Nível Médio - Curso Técnico Concomitante", + "Curso Técnico Subsequente": "Educação Profissional Técnica de Nível Médio - Curso Técnico Subsequente", + "Curso Técnico Misto (Concomitante e Subsequente)": "Educação Profissional Técnica de Nível Médio - Curso Técnico Misto (Concomitante e Subsequente)", + "Curso FIC Concomitante": "Educação Profissional - Curso FIC Concomitante", + "Curso FIC Integrado na Modalidade EJA20": "Educação Profissional - Curso FIC Integrado na Modalidade EJA", + "Ensino Fundamental22": "EJA - Ensino Fundamental", + "Ensino Médio23": "EJA - Ensino Médio", + "Classes Comuns25": "Educação Especial - Classes Comuns", + "Classes Exclusivas26": "Educação Especial - Classes Exclusivas", + }} + + +etapa_ensino = { + "educacao_basica": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Basica"], + "chave": "Educação Básica 2.1", + "valor": "Educacao Basica", + "skiprows": 8, + "table": "docente_etapa_ensino", + }, + "educacao_infantil": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Infantil"], + "chave": "Educação Infantil 2.6", + #"chave": "Educação Infantil 2.5", # Em 2010, a chave é 2.5 + "valor": "Educacao Infantil", + "skiprows": 8, + "table": "docente_etapa_ensino", + }, + "ensino_fundamental": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Ensino Fundamental"], + "chave": "Ensino Fundamental 2.16", + #"chave": "Ensino Fundamental 2.13", # Em 2010, a chave é 2.13 + "valor": "Ensino Fundamental", + "skiprows": 8, + "table": "docente_etapa_ensino", + }, + "educacao_profissional": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Profissional"], + "chave": "Educação Profissional 2.33", + #"chave": "Educação Profissional 2.26", # Em 2010, a chave é 26 + "valor": "Ensino Profissional", + "skiprows": 9, + "table": "docente_etapa_ensino", + }, + "EJA": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["EJA"], + "chave": "EJA 2.38", + #"chave": "EJA 2.30", # Em 2010, a chave é 2.30 + "valor": "EJA", + "skiprows": 8, + "table": "docente_etapa_ensino", + }, + "educacao_especial": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Especial"], + "chave": "Educação Especial 2.43", + #"chave": "Educação Especial 2.34", # Em 2010, a chave é 2.34 + "valor": "Educacao Especial", + "skiprows": 8, + "table": "docente_etapa_ensino", + }, + "educacao_especial_classes_comuns": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Especial - Classes Comuns"], + "chave": "Classes Comuns 2.44", + #"chave": "Classes Comuns 2.35", # Em 2010, a chave é 2.35 + "valor": "Educacao Especial - Classes Comuns", + "skiprows": 8, + "table": "docente_etapa_ensino", + }, + "educacao_especial_classes_exclusivas": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Especial - Classes Exclusivas"], + "chave": "Classes Exclusivas 2.50", + #"chave": "Classes Exclusivas 2.49", # Em 2011, a chave é 2.49 + #"chave" : "Classes Exclusivas 2.39", # Em 2010, a chave é 2.39 + "valor": "Educacao Especial - Classes Exclusivas", + "skiprows": 8, + "table": "docente_etapa_ensino", + }, + "educacao_indigena": { + "dicionario": RENAMES_ETAPA_ENSINO_SERIE["Educacao Indigena"], + "chave": "Educação Indígena 2.56", + "valor": "Educacao Indigena", + "skiprows": 9, + "table": "docente_etapa_ensino", + }, +} + + +def read_sheet( + table: str, ano: int, chave: str, valor: str, dicionario: dict, skiprows: int = 9 +) -> pd.DataFrame: + print("Tratando dados de", valor) + df = pd.read_excel( + os.path.join( + INPUT, + f"Sinopse_Estatistica_da_Educacao_Basica_{ano}", + f"Sinopse_Estatistica_da_Educacao_Basica_{ano}.xlsx", + ), + skiprows=skiprows, + sheet_name=chave, + ) + + sheets_etapa_ensino_serie = { + chave: valor + } + + dfs_etapa_ensino_serie = { + name: pd.read_excel( + os.path.join( + INPUT, + f"Sinopse_Estatistica_da_Educacao_Basica_{ano}", + f"Sinopse_Estatistica_da_Educacao_Basica_{ano}.xlsx", + ), + skiprows=skiprows, + sheet_name=sheet_name, + ) + for sheet_name, name in sheets_etapa_ensino_serie.items() + } + + dataframes = {} + for table_name, columns in dfs_etapa_ensino_serie.items(): + df = pd.DataFrame(columns) + dataframes[table_name] = df + + print(df.columns) + + def drop_unused_columns(df: pd.DataFrame) -> pd.DataFrame: + cols_drop = [ + col + for col in df.columns + if col.startswith("Unnamed") or col.startswith("Total") + ] + + return df.drop(columns=cols_drop) + + dfs_etapa_ensino_serie = { + name: drop_unused_columns(df.rename(columns=dicionario, errors="raise")) + for name, df in dfs_etapa_ensino_serie.items() + } + + df_etapa_ensino = pd.concat( + [ + df.pipe( + lambda d: d.loc[ + (d["id_municipio"].notna()) & (d["id_municipio"] != " "), + ] + ) + .pipe( + lambda d: pd.melt( + d, + id_vars=["id_municipio", "uf"], + value_vars=d.columns.difference( + ["id_municipio", "uf"] + ).tolist(), # Convert to list + var_name="etapa_ensino", + value_name="quantidade_docentes", + ) + ) + .assign(tipo_classe=tipo_classe) + for tipo_classe, df in dfs_etapa_ensino_serie.items() + ] + ) + + df_etapa_ensino["etapa_ensino"] = ( + df_etapa_ensino["etapa_ensino"].str.strip().replace("", np.nan).dropna() + ) + + bd_dir = bd.read_sql( + "SELECT nome, sigla FROM `basedosdados.br_bd_diretorios_brasil.uf`", + billing_project_id="basedosdados", + reauth=False, + ) + + df_etapa_ensino["etapa_ensino"] = ( + df_etapa_ensino["etapa_ensino"].str.strip().replace("", np.nan) + ) + + df_etapa_ensino['quantidade_docentes'] = df_etapa_ensino['quantidade_docentes'].astype(int) + + df_etapa_ensino = df_etapa_ensino[pd.notna(df_etapa_ensino["etapa_ensino"])] + df_etapa_ensino["uf"] = ( + df_etapa_ensino["uf"] + .apply(lambda uf: uf.strip()) + .replace({i["nome"]: i["sigla"] for i in bd_dir.to_dict("records")}) # type: ignore + ) + df_etapa_ensino = df_etapa_ensino.rename(columns={"uf": "sigla_uf"}, errors="raise") + for sigla_uf, df in df_etapa_ensino.groupby("sigla_uf"): + path = os.path.join(OUTPUT, f"{table}", f"ano={ano}", f"sigla_uf={sigla_uf}") + if not os.path.exists(path): + os.makedirs(path, exist_ok=True) + df.drop(columns=["sigla_uf"]).to_csv( + os.path.join(path, "data.csv"), index=False, mode="w" + ) + else: + df.drop(columns=["sigla_uf"]).to_csv( + os.path.join(path, "data.csv"), index=False, mode="a", header=False + ) + + return df_etapa_ensino + + +lista = [ + "educacao_basica", + "educacao_infantil", + "ensino_fundamental", + "educacao_profissional", + "EJA", + "educacao_especial", + "educacao_especial_classes_comuns", + "educacao_especial_classes_exclusivas", + #"educacao_indigena", +] + +for x in lista: + read_sheet( + table=etapa_ensino[x]["table"], + ano=2021, + chave=etapa_ensino[x]["chave"], + valor=etapa_ensino[x]["valor"], + dicionario=etapa_ensino[x]["dicionario"], + skiprows=etapa_ensino[x]["skiprows"], + ) diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/schema.yml b/models/br_inep_sinopse_estatistica_educacao_basica/schema.yml index 9678cac1..93301eac 100644 --- a/models/br_inep_sinopse_estatistica_educacao_basica/schema.yml +++ b/models/br_inep_sinopse_estatistica_educacao_basica/schema.yml @@ -165,3 +165,240 @@ models: description: Raça/Cor - name: quantidade_matricula description: Número de matrículas + - name: br_inep_sinopse_estatistica_educacao_basica__docente_escolaridade + description: A base conta com o total de docentes por município, escolaridade + e rede + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - id_municipio + - escolaridade + - tipo_classe + - not_null_proportion_multiple_columns: + at_least: 0.95 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: tipo_classe + description: 'Tipo de classe da Educação Especial (e.g.: Classes Comuns ou + Classes Exclusivas/Especiais)' + - name: escolaridade + description: Escolaridade + - name: quantidade_docente + description: Número de Docentes + - name: br_inep_sinopse_estatistica_educacao_basica__docente_regime_contrato + description: A base conta com o total de docentes por município, regime de contrato + e rede + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - id_municipio + - regime_contrato + - rede + - tipo_classe + - not_null_proportion_multiple_columns: + at_least: 0.95 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: tipo_classe + description: 'Tipo de classe da Educação Especial (e.g.: Classes Comuns ou + Classes Exclusivas/Especiais)' + - name: rede + description: Rede Escolar (e.g. Federal, Estadual, Municipal e Privada) + - name: regime_contrato + description: Regime de contratação + - name: quantidade_docente + description: Número de Docentes + - name: br_inep_sinopse_estatistica_educacao_basica__docente_faixa_etaria_sexo + description: A base conta com o total de docentes por município, faixa etária + e sexo + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - id_municipio + - faixa_etaria + - sexo + - tipo_classe + - not_null_proportion_multiple_columns: + at_least: 0.95 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: tipo_classe + description: 'Tipo de classe da Educação Especial (e.g.: Classes Comuns ou + Classes Exclusivas/Especiais)' + - name: faixa_etaria + description: Faixa Etária dos docentes + - name: sexo + description: Sexo dos docentes + - name: quantidade_docente + description: Número de Docentes + - name: br_inep_sinopse_estatistica_educacao_basica__docente_deficiencia + description: A base conta com o total de docentes por município, tipo de deficiência + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - id_municipio + - deficiencia + - tipo_classe + - not_null_proportion_multiple_columns: + at_least: 0.95 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: tipo_classe + description: 'Tipo de classe da Educação Especial (e.g.: Classes Comuns ou + Classes Exclusivas/Especiais)' + - name: deficiencia + description: Tipo de deficiência, transtorno global do desenvolvimento ou + altas habilidades/superdotação + - name: quantidade_docente + description: Número de docentes + - name: br_inep_sinopse_estatistica_educacao_basica__docente_localizacao + description: A base conta com o total de docentes por município, rede e localização + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - id_municipio + - rede + - localizacao + - tipo_classe + - not_null_proportion_multiple_columns: + at_least: 0.95 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: tipo_classe + description: 'Tipo de classe da Educação Especial (e.g.: Classes Comuns ou + Classes Exclusivas/Especiais)' + - name: rede + description: Rede Escolar (e.g. Federal, Estadual, Municipal e Privada) + - name: localizacao + description: Localização (e.g. Zona Urbana, Zona Rural) + - name: quantidade_docente + description: Número de docentes + - name: br_inep_sinopse_estatistica_educacao_basica__docente_etapa_ensino + description: A base conta com o total de docentes por município, faixa etária + e sexo + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - ano + - id_municipio + - etapa_ensino + - tipo_classe + - not_null_proportion_multiple_columns: + at_least: 0.95 + columns: + - name: ano + description: Ano + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: sigla_uf + description: Sigla da Unidade da Federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: tipo_classe + description: 'Tipo de classe da Educação Especial (e.g.: Classes Comuns ou + Classes Exclusivas/Especiais)' + - name: etapa_ensino + description: Etapa e/ou Sub-etapas de ensino (e.g. Creche, Pré-escola, Anos + Iniciais, Anos Finais, Ensino Fundamental - EJA, ...) + - name: quantidade_docente + description: Número de Docentes From f32c4132773a40881a4c56d4a0d2fe7ae53bf390 Mon Sep 17 00:00:00 2001 From: tricktx Date: Tue, 29 Oct 2024 12:50:31 -0300 Subject: [PATCH 08/10] create template pr in queries-basedosdados --- .github/pull_request_template.md | 63 ++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..ccfdd206 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,63 @@ + +# Template Pull Requests - Queries-basedosdados + +## Nomeação do Pull Request + +A nomeação de cada Pull Request (PR) deve seguir o seguinte padrão: + +- O título de cada Pull Request (PR) deve começar com uma das seguintes palavras-chave, entre colchetes. Além disso, **marque a palavra-chave que melhor descreve o seu PR atual**: + - [ ] **[Dbt]**: Para subida de novos dados em produção. + - [ ] **[Feature]**: Para novas funcionalidades. + - [ ] **[Table-Approve]**: Para rodar apenas o Table-Approve. + - [ ] **[Bugfix]**: Para correções de bugs. + - [ ] **[Refactor]**: Para mudanças no código que não alteram a funcionalidade. + - [ ] **[Docs]**: Para atualizações na documentação. + - [ ] **[Test]**: Para mudanças relacionadas a testes. + - [ ] **[Chore]**: Para tarefas menores e de manutenção. + +--- + - Exemplos de título: + - **[docs] br_me_caged** + - **[Feature] br_cgu_servidores_publicos** + +## Draft: +- Ao abrir o PR, deverá coloca-lo como draft + + +## Descrição do PR: +- Explique de maneira clara e concisa o objetivo deste PR. O que foi alterado? Qual o problema que ele resolve? + - **Motivação/Contexto:** + + +## Detalhes Técnicos: +- Detalhe as mudanças mais técnicas, como ajustes no dbt, scripts ou modelo de dados utilizado. + - **Principais alterações no dbt/scripts:** + - **Mudanças nos dados e no schema:** + - **Impacto no desempenho:** + +- Se alguma parte do código precisar de alguma atenção a mais, comente na linha sinalizando para os revisores. + +## Teste e Validações: + +- Relate os testes e validações relacionado aos dados/script: + - [ ] Testado em `queries-basedosdados-dev` + - [ ] **Decisões relacionadas aos testes:** + + - **Caso haja algo relacionado aos testes que vale a pena informar:** + +## Riscos e Mitigações: +- Identifique os riscos potenciais desta mudança e como mitigar esses Riscos + + - Riscos conhecidos: + - Planos de rollback: + +## Dependencias: +- Liste quaisquer dependências externas, como bibliotecas, outros PRs ou mudanças que precisam ser feitas antes deste merge. + - [ ] Dependências: + - [ ] Nenhuma dependencias adicional + + +## Revisadores: +- Quando o PR estiver pronto para ser revisado, retire o **Draft** através do **Ready for reviews**, marque os revisadores de repositório, envie o PR no nosso [discord](https://discord.gg/V3yTWRYWZZ) na aba **Correções de PRs, arquiteturas e afins** e marque a **@equipe_dados**: + - Revisadores recomendados no github: + - basedosdados/dados From 4bfdfc6ef254def02d1aeafc431844f6520d99f2 Mon Sep 17 00:00:00 2001 From: tricktx Date: Wed, 30 Oct 2024 11:58:34 -0300 Subject: [PATCH 09/10] add if __name__ == '__main__' in code --- .../code_docente/docente_deficiencia.py | 35 ++++++------- .../code_docente/docente_escolaridade.py | 48 ++++++++--------- .../code_docente/docente_faixa_etaria_sexo.py | 48 ++++++++--------- .../code_docente/docente_localizacao.py | 50 +++++++++--------- .../docente_regime_contratacao.py | 52 +++++++++---------- .../code_docente/docentes_etapa_ensino.py | 45 ++++++++-------- 6 files changed, 132 insertions(+), 146 deletions(-) diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_deficiencia.py b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_deficiencia.py index 97ca0d03..4473f626 100644 --- a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_deficiencia.py +++ b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_deficiencia.py @@ -4,9 +4,6 @@ import basedosdados as bd import numpy as np -pd.set_option("display.max_columns", None) -pd.set_option("display.max_rows", None) - INPUT = os.path.join(os.getcwd(), "input") OUTPUT = os.path.join(os.getcwd(), "output") @@ -157,19 +154,19 @@ def drop_unused_columns(df: pd.DataFrame) -> pd.DataFrame: os.path.join(path, "data.csv"), index=False, mode="a", header=False ) - -lista = [ - "educacao_especial_classes_comuns", - "educacao_especial_classes_exclusivas", -] - -for x in lista: - # for ano in range(2012, 2019): - read_sheet( - table=deficiencia[x]["table"], - ano=2011, - chave=deficiencia[x]["chave"], - valor=deficiencia[x]["valor"], - dicionario=deficiencia[x]["dicionario"], - skiprows=deficiencia[x]["skiprows"], - ) +if __name__ == '__main__' : + lista = [ + "educacao_especial_classes_comuns", + "educacao_especial_classes_exclusivas", + ] + + for x in lista: + # for ano in range(2012, 2019): + read_sheet( + table=deficiencia[x]["table"], + ano=2011, + chave=deficiencia[x]["chave"], + valor=deficiencia[x]["valor"], + dicionario=deficiencia[x]["dicionario"], + skiprows=deficiencia[x]["skiprows"], + ) diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_escolaridade.py b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_escolaridade.py index 7267d1cb..179dadf4 100644 --- a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_escolaridade.py +++ b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_escolaridade.py @@ -4,8 +4,6 @@ import basedosdados as bd import numpy as np -pd.set_option("display.max_columns", None) -pd.set_option("display.max_rows", None) INPUT = os.path.join(os.getcwd(), "input") OUTPUT = os.path.join(os.getcwd(), "output") @@ -323,27 +321,27 @@ def drop_unused_columns(df: pd.DataFrame) -> pd.DataFrame: os.path.join(path, "data.csv"), index=False, mode="a", header=False ) +if __name__ == '__main__' : + lista = [ + "educacao_basica", + "ensino_infantil_creche", + "educacao_infantil_pre_escola", + "ensino_fundamental", + "ensino_fundamental_anos_iniciais", + "ensino_fundamental_anos_finais", + "ensino_medio", + "educacao_profissional", + "EJA", + "educacao_especial_classes_comuns", + "educacao_especial_classes_exclusivas", + ] -lista = [ - "educacao_basica", - "ensino_infantil_creche", - "educacao_infantil_pre_escola", - "ensino_fundamental", - "ensino_fundamental_anos_iniciais", - "ensino_fundamental_anos_finais", - "ensino_medio", - "educacao_profissional", - "EJA", - "educacao_especial_classes_comuns", - "educacao_especial_classes_exclusivas", -] - -for x in lista: - read_sheet( - table=escolaridade[x]["table"], - ano=2007, - chave=escolaridade[x]["chave"], - valor=escolaridade[x]["valor"], - dicionario=escolaridade[x]["dicionario"], - skiprows=escolaridade[x]["skiprows"], - ) + for x in lista: + read_sheet( + table=escolaridade[x]["table"], + ano=2007, + chave=escolaridade[x]["chave"], + valor=escolaridade[x]["valor"], + dicionario=escolaridade[x]["dicionario"], + skiprows=escolaridade[x]["skiprows"], + ) diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_faixa_etaria_sexo.py b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_faixa_etaria_sexo.py index 8d02e638..fb16a601 100644 --- a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_faixa_etaria_sexo.py +++ b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_faixa_etaria_sexo.py @@ -4,8 +4,6 @@ import basedosdados as bd import numpy as np -pd.set_option("display.max_columns", None) -pd.set_option("display.max_rows", None) INPUT = os.path.join(os.getcwd(), "input") OUTPUT = os.path.join(os.getcwd(), "output") @@ -420,27 +418,27 @@ def drop_unused_columns(df: pd.DataFrame) -> pd.DataFrame: os.path.join(path, "data.csv"), index=False, mode="a", header=False ) +if __name__ == '__main__' : + lista = [ + "educacao_basica", + "educacao_infantil_creche", + "educacao_infantil_pre_escola", + "ensino_fundamental", + "ensino_fundamental_anos_iniciais", + "ensino_fundamental_anos_finais", + "ensino_medio", + "educacao_profissional", + "EJA", + "educacao_especial_classes_comuns", + "educacao_especial_classes_exclusivas", + ] -lista = [ - "educacao_basica", - "educacao_infantil_creche", - "educacao_infantil_pre_escola", - "ensino_fundamental", - "ensino_fundamental_anos_iniciais", - "ensino_fundamental_anos_finais", - "ensino_medio", - "educacao_profissional", - "EJA", - "educacao_especial_classes_comuns", - "educacao_especial_classes_exclusivas", -] - -for x in lista: - read_sheet( - table=localizacao[x]["table"], - ano=2007, - chave=localizacao[x]["chave"], - valor=localizacao[x]["valor"], - dicionario=localizacao[x]["dicionario"], - skiprows=localizacao[x]["skiprows"], - ) + for x in lista: + read_sheet( + table=localizacao[x]["table"], + ano=2007, + chave=localizacao[x]["chave"], + valor=localizacao[x]["valor"], + dicionario=localizacao[x]["dicionario"], + skiprows=localizacao[x]["skiprows"], + ) diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_localizacao.py b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_localizacao.py index 5f5ef117..dc546fbf 100644 --- a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_localizacao.py +++ b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_localizacao.py @@ -4,8 +4,6 @@ import basedosdados as bd import numpy as np -pd.set_option("display.max_columns", None) -pd.set_option("display.max_rows", None) INPUT = os.path.join(os.getcwd(), "input") OUTPUT = os.path.join(os.getcwd(), "output") @@ -519,28 +517,28 @@ def drop_unused_columns(df: pd.DataFrame) -> pd.DataFrame: df.drop(columns=["sigla_uf"]).to_csv( os.path.join(path, "data.csv"), index=False, mode="a", header=False ) +if __name__ == "__main__": + lista = [ + "educacao_basica", + "educacao_infantil", + "ensino_infantil_creche", + "educacao_infantil_pre_escola", + "ensino_fundamental", + "ensino_fundamental_anos_iniciais", + "ensino_fundamental_anos_finais", + "ensino_medio", + "educacao_profissional", + "EJA", + "educacao_especial_classes_comuns", + "educacao_especial_classes_exclusivas" + ] -lista = [ - "educacao_basica", - "educacao_infantil", - "ensino_infantil_creche", - "educacao_infantil_pre_escola", - "ensino_fundamental", - "ensino_fundamental_anos_iniciais", - "ensino_fundamental_anos_finais", - "ensino_medio", - "educacao_profissional", - "EJA", - "educacao_especial_classes_comuns", - "educacao_especial_classes_exclusivas" -] - -for x in lista: - read_sheet( - table=localizacao[x]["table"], - ano=2007, - chave=localizacao[x]["chave"], - valor=localizacao[x]["valor"], - dicionario=localizacao[x]["dicionario"], - skiprows=localizacao[x]["skiprows"], - ) + for x in lista: + read_sheet( + table=localizacao[x]["table"], + ano=2007, + chave=localizacao[x]["chave"], + valor=localizacao[x]["valor"], + dicionario=localizacao[x]["dicionario"], + skiprows=localizacao[x]["skiprows"], + ) diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_regime_contratacao.py b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_regime_contratacao.py index ec7c2398..3e8e50a4 100644 --- a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_regime_contratacao.py +++ b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docente_regime_contratacao.py @@ -4,8 +4,6 @@ import basedosdados as bd import numpy as np -pd.set_option("display.max_columns", None) -pd.set_option("display.max_rows", None) INPUT = os.path.join(os.getcwd(), "input") OUTPUT = os.path.join(os.getcwd(), "output") @@ -561,28 +559,28 @@ def drop_unused_columns(df: pd.DataFrame) -> pd.DataFrame: os.path.join(path, "data.csv"), index=False, mode="a", header=False ) - -lista = [ - "educacao_basica", - "ensino_infantil_creche", - "educacao_infantil_pre_escola", - "ensino_fundamental", - "ensino_fundamental_anos_iniciais", - "ensino_fundamental_anos_finais", - "ensino_medio", - "educacao_profissional", - "EJA", - "educacao_especial_classes_comuns", - "educacao_especial_classes_exclusivas", -] - -for x in lista: - #for ano in range(2012, 2019): - read_sheet( - table=regime_contrato[x]["table"], - ano=2010, - chave=regime_contrato[x]["chave"], - valor=regime_contrato[x]["valor"], - dicionario=regime_contrato[x]["dicionario"], - skiprows=regime_contrato[x]["skiprows"], -) +if __name__ == "__main__": + lista = [ + "educacao_basica", + "ensino_infantil_creche", + "educacao_infantil_pre_escola", + "ensino_fundamental", + "ensino_fundamental_anos_iniciais", + "ensino_fundamental_anos_finais", + "ensino_medio", + "educacao_profissional", + "EJA", + "educacao_especial_classes_comuns", + "educacao_especial_classes_exclusivas", + ] + + for x in lista: + # for ano in range(2012, 2019): + read_sheet( + table=regime_contrato[x]["table"], + ano=2010, + chave=regime_contrato[x]["chave"], + valor=regime_contrato[x]["valor"], + dicionario=regime_contrato[x]["dicionario"], + skiprows=regime_contrato[x]["skiprows"], + ) diff --git a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docentes_etapa_ensino.py b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docentes_etapa_ensino.py index 79a4c638..0cfbb7e3 100644 --- a/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docentes_etapa_ensino.py +++ b/models/br_inep_sinopse_estatistica_educacao_basica/code_docente/docentes_etapa_ensino.py @@ -4,9 +4,6 @@ import basedosdados as bd import numpy as np -pd.set_option("display.max_columns", None) -pd.set_option("display.max_rows", None) - INPUT = os.path.join(os.getcwd(), "input") OUTPUT = os.path.join(os.getcwd(), "output") @@ -468,25 +465,25 @@ def drop_unused_columns(df: pd.DataFrame) -> pd.DataFrame: return df_etapa_ensino +if __name__ == "__main__": + lista = [ + "educacao_basica", + "educacao_infantil", + "ensino_fundamental", + "educacao_profissional", + "EJA", + "educacao_especial", + "educacao_especial_classes_comuns", + "educacao_especial_classes_exclusivas", + #"educacao_indigena", + ] -lista = [ - "educacao_basica", - "educacao_infantil", - "ensino_fundamental", - "educacao_profissional", - "EJA", - "educacao_especial", - "educacao_especial_classes_comuns", - "educacao_especial_classes_exclusivas", - #"educacao_indigena", -] - -for x in lista: - read_sheet( - table=etapa_ensino[x]["table"], - ano=2021, - chave=etapa_ensino[x]["chave"], - valor=etapa_ensino[x]["valor"], - dicionario=etapa_ensino[x]["dicionario"], - skiprows=etapa_ensino[x]["skiprows"], - ) + for x in lista: + read_sheet( + table=etapa_ensino[x]["table"], + ano=2021, + chave=etapa_ensino[x]["chave"], + valor=etapa_ensino[x]["valor"], + dicionario=etapa_ensino[x]["dicionario"], + skiprows=etapa_ensino[x]["skiprows"], + ) From 31ea16c1c9cc1df8f2a463c1b66015168d5aaa04 Mon Sep 17 00:00:00 2001 From: Luiz Eduardo Date: Mon, 21 Oct 2024 11:27:26 -0300 Subject: [PATCH 10/10] Adicionar microdados ao modelo br_tse_filiacao_partidaria --- ...br_tse_filiacao_partidaria__microdados.sql | 51 ++++++++++ models/br_tse_filiacao_partidaria/schema.yml | 97 ++++++++++++++++++- 2 files changed, 147 insertions(+), 1 deletion(-) create mode 100644 models/br_tse_filiacao_partidaria/br_tse_filiacao_partidaria__microdados.sql diff --git a/models/br_tse_filiacao_partidaria/br_tse_filiacao_partidaria__microdados.sql b/models/br_tse_filiacao_partidaria/br_tse_filiacao_partidaria__microdados.sql new file mode 100644 index 00000000..32c0d22e --- /dev/null +++ b/models/br_tse_filiacao_partidaria/br_tse_filiacao_partidaria__microdados.sql @@ -0,0 +1,51 @@ +{{ + config( + schema="br_tse_filiacao_partidaria", + alias="microdados", + materialized="table", + unique_key="registro_filiacao", + partition_by={ + "field": "data_extracao", + "data_type": "date", + }, + cluster_by=["sigla_uf"], + ) +}} +with + tabela as ( + select + safe_cast(sqregistrofiliacao as string) registro_filiacao, + safe_cast(sgpartido as string) sigla_partido, + safe_cast(sigla_uf as string) sigla_uf, + safe_cast(id_municipio as string) id_municipio, + safe_cast(codlocalidadetse as string) id_municipio_tse, + safe_cast(numzona as string) zona, + safe_cast(numsecao as string) secao, + safe_cast(nrtituloeleitor as string) titulo_eleitor, + safe_cast(numcpf as string) cpf, + safe_cast(nmeleitor as string) nome, + safe_cast(nmsocialeleitor as string) nome_social, + safe_cast(tpsexo as string) sexo, + safe_cast(dessituacaoeleitor as string) situacao_registro, + safe_cast(cdmotivodesfiliacao as string) motivo_desfiliacao, + safe_cast(cdmotivocancelamento as string) motivo_cancelamento, + safe_cast(indorigem as string) indicador_origem, + safe_cast(dtfiliacao as date) data_filiacao, + safe_cast(dtdesfiliacao as date) data_desfiliacao, + safe_cast(tscadastrodesfiliacao as date) data_cadastro_desfiliacao, + safe_cast(dtcancelamento as date) data_cancelamento, + safe_cast(dtexclusao as date) data_exclusao, + safe_cast(data_extracao as date) data_extracao, + from `basedosdados-staging.br_tse_filiacao_partidaria_staging.microdados` + ), + select_rows as ( + select + *, + row_number() over ( + partition by registro_filiacao order by data_extracao desc + ) as rn + from tabela + ) +select * except (rn) +from select_rows +where rn = 1 diff --git a/models/br_tse_filiacao_partidaria/schema.yml b/models/br_tse_filiacao_partidaria/schema.yml index e19dec6a..0afb543e 100644 --- a/models/br_tse_filiacao_partidaria/schema.yml +++ b/models/br_tse_filiacao_partidaria/schema.yml @@ -2,7 +2,7 @@ version: 2 models: - name: br_tse_filiacao_partidaria__microdados_antigos - description: Microdados de filiação partidária do TSE. + description: Microdados antigos de filiação partidária do TSE. tests: - custom_not_null_proportion_multiple_columns: at_least: 0.10 @@ -69,3 +69,98 @@ models: field: data.data - name: motivo_cancelamento description: Motivo de cancelamento + - name: br_tse_filiacao_partidaria__microdados + description: Microdados de filiação partidária do TSE. + tests: + - custom_not_null_proportion_multiple_columns: + at_least: 0.55 + ignore_values: + - data_desfiliacao + - data_exclusao + - data_cadastro_desfiliacao + - motivo_desfiliacao + - motivo_cancelamento + - data_cancelamento + - nome_social + - dbt_utils.unique_combination_of_columns: + combination_of_columns: [registro_filiacao] + columns: + - name: registro_filiacao + description: Sequecia do registro filiação + - name: sigla_partido + description: Sigla do partido + - name: sigla_uf + description: Sigla da unidade da federação + tests: + - custom_relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + ignore_values: [ZZ] + - name: id_municipio + description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: id_municipio_tse + description: ID Município - TSE + - name: zona + description: Zona eleitoral + - name: secao + description: Seção eleitoral + - name: titulo_eleitor + description: Título de eleitor + - name: cpf + description: Cadastro de pessoa física + - name: nome + description: Nome do eleitor + - name: nome_social + description: Nome social do eleitor + - name: sexo + description: Sexo + - name: situacao_registro + description: Situação do registro + - name: motivo_desfiliacao + description: Código do motivo da desfiliação. Não foi encontrada na documentação + a tradução deste código + - name: motivo_cancelamento + description: Código do motivo de cancelamento. Não foi encontrada na documentação + a tradução deste código + - name: indicador_origem + description: Não foi encontrado uma definição na documentação para este campo + - name: data_filiacao + description: Data da filiação + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__data') + field: data.data + - name: data_desfiliacao + description: Data de desfiliação + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__data') + field: data.data + - name: data_cadastro_desfiliacao + description: Data do cadastro da desfiliação + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__data') + field: data.data + - name: data_cancelamento + description: Data de cancelamento + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__data') + field: data.data + - name: data_exclusao + description: Data de exclusão + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__data') + field: data.data + - name: data_extracao + description: Data de extração da linha + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__data') + field: data.data