From 63f87e78dca5867dfbb04eeae421bd3ee3520a8e Mon Sep 17 00:00:00 2001 From: tricktx Date: Wed, 6 Nov 2024 19:54:26 -0300 Subject: [PATCH] update enem 2023 --- .../br_inep_enem/br_inep_enem__dicionario.sql | 1 + .../br_inep_enem/br_inep_enem__microdados.sql | 2 +- ...enem__questionario_socioeconomico_2023.sql | 30 ++ models/br_inep_enem/code/microdados.py | 308 ++++++++++++++ .../code/questionario_socioeconomico.py | 62 +++ models/br_inep_enem/schema.yml | 394 +++++++++++++----- 6 files changed, 693 insertions(+), 104 deletions(-) create mode 100644 models/br_inep_enem/br_inep_enem__questionario_socioeconomico_2023.sql create mode 100644 models/br_inep_enem/code/microdados.py create mode 100644 models/br_inep_enem/code/questionario_socioeconomico.py diff --git a/models/br_inep_enem/br_inep_enem__dicionario.sql b/models/br_inep_enem/br_inep_enem__dicionario.sql index 7c933262..cb865193 100644 --- a/models/br_inep_enem/br_inep_enem__dicionario.sql +++ b/models/br_inep_enem/br_inep_enem__dicionario.sql @@ -1,4 +1,5 @@ {{ config(alias="dicionario", schema="br_inep_enem") }} + select safe_cast(id_tabela as string) id_tabela, safe_cast(nome_coluna as string) nome_coluna, diff --git a/models/br_inep_enem/br_inep_enem__microdados.sql b/models/br_inep_enem/br_inep_enem__microdados.sql index 909d202d..fcbf8db3 100644 --- a/models/br_inep_enem/br_inep_enem__microdados.sql +++ b/models/br_inep_enem/br_inep_enem__microdados.sql @@ -5,7 +5,7 @@ partition_by={ "field": "ano", "data_type": "int64", - "range": {"start": 1998, "end": 2022, "interval": 1}, + "range": {"start": 1998, "end": 2023, "interval": 1}, }, labels={"project_id": "basedosdados", "tema": "educacao"}, ) diff --git a/models/br_inep_enem/br_inep_enem__questionario_socioeconomico_2023.sql b/models/br_inep_enem/br_inep_enem__questionario_socioeconomico_2023.sql new file mode 100644 index 00000000..2b8ab8af --- /dev/null +++ b/models/br_inep_enem/br_inep_enem__questionario_socioeconomico_2023.sql @@ -0,0 +1,30 @@ +{{ config(alias="questionario_socioeconomico_2023", schema="br_inep_enem") }} + +select + safe_cast(id_inscricao as string) id_inscricao, + safe_cast(q001 as string) q001, + safe_cast(q002 as string) q002, + safe_cast(q003 as string) q003, + safe_cast(q004 as string) q004, + safe_cast(q005 as string) q005, + safe_cast(q006 as string) q006, + safe_cast(q007 as string) q007, + safe_cast(q008 as string) q008, + safe_cast(q009 as string) q009, + safe_cast(q010 as string) q010, + safe_cast(q011 as string) q011, + safe_cast(q012 as string) q012, + safe_cast(q013 as string) q013, + safe_cast(q014 as string) q014, + safe_cast(q015 as string) q015, + safe_cast(q016 as string) q016, + safe_cast(q017 as string) q017, + safe_cast(q018 as string) q018, + safe_cast(q019 as string) q019, + safe_cast(q020 as string) q020, + safe_cast(q021 as string) q021, + safe_cast(q022 as string) q022, + safe_cast(q023 as string) q023, + safe_cast(q024 as string) q024, + safe_cast(q025 as string) q025 +from `basedosdados-staging.br_inep_enem_staging.questionario_socioeconomico_2023` as t diff --git a/models/br_inep_enem/code/microdados.py b/models/br_inep_enem/code/microdados.py new file mode 100644 index 00000000..8f975ffe --- /dev/null +++ b/models/br_inep_enem/code/microdados.py @@ -0,0 +1,308 @@ +import pandas as pd +import numpy as np +import os +from io import StringIO +import requests +import gc +import warnings +import re +from datetime import datetime +from os import getenv, walk +from os.path import join +from pathlib import Path +from typing import Any, Dict, List, Optional, Tuple, Union +from uuid import uuid4 +import zipfile +import basedosdados as bd + +import numpy as np +import pandas as pd +warnings.filterwarnings("ignore") + + +def to_partitions( + data: pd.DataFrame, + partition_columns: List[str], + savepath: str, + file_type: str = "csv", +): + """Save data in to hive patitions schema, given a dataframe and a list of partition columns. + Args: + data (pandas.core.frame.DataFrame): Dataframe to be partitioned. + partition_columns (list): List of columns to be used as partitions. + savepath (str, pathlib.PosixPath): folder path to save the partitions. + file_type (str): default to csv. Accepts parquet. + Exemple: + data = { + "ano": [2020, 2021, 2020, 2021, 2020, 2021, 2021,2025], + "mes": [1, 2, 3, 4, 5, 6, 6,9], + "sigla_uf": ["SP", "SP", "RJ", "RJ", "PR", "PR", "PR","PR"], + "dado": ["a", "b", "c", "d", "e", "f", "g",'h'], + } + to_partitions( + data=pd.DataFrame(data), + partition_columns=['ano','mes','sigla_uf'], + savepath='partitions/', + ) + """ + + if isinstance(data, (pd.core.frame.DataFrame)): + savepath = Path(savepath) + # create unique combinations between partition columns + unique_combinations = ( + data[partition_columns] + # .astype(str) + .drop_duplicates(subset=partition_columns).to_dict(orient="records") + ) + + for filter_combination in unique_combinations: + patitions_values = [ + f"{partition}={value}" + for partition, value in filter_combination.items() + ] + + # get filtered data + df_filter = data.loc[ + data[filter_combination.keys()] + .isin(filter_combination.values()) + .all(axis=1), + :, + ] + df_filter = df_filter.drop(columns=partition_columns) + + # create folder tree + filter_save_path = Path(savepath / "/".join(patitions_values)) + filter_save_path.mkdir(parents=True, exist_ok=True) + + if file_type == "csv": + # append data to csv + file_filter_save_path = Path(filter_save_path) / "data.csv" + df_filter.to_csv( + file_filter_save_path, + sep=",", + encoding="utf-8", + na_rep="", + index=False, + mode="a", + header=not file_filter_save_path.exists(), + ) + elif file_type == "parquet": + # append data to parquet + file_filter_save_path = Path(filter_save_path) / "data.parquet" + df_filter.to_parquet( + file_filter_save_path, index=False, compression="gzip" + ) + else: + raise BaseException("Data need to be a pandas DataFrame") + + +valor = 0 +def read_csv_enem(): + global valor + for df in pd.read_csv( + "/home/tricktx/dados/br_inep_enem/Microdados ENEM 2023/DADOS/MICRODADOS_ENEM_2023.csv", + sep=";", + encoding="latin1", + chunksize=100000): + valor = valor + 1 + print(valor) + RENAME = { + "NU_INSCRICAO": "id_inscricao", + "NU_ANO": "ano", + "TP_FAIXA_ETARIA": "faixa_etaria", + "TP_SEXO": "sexo", + "TP_ESTADO_CIVIL": "estado_civil", + "TP_COR_RACA": "cor_raca", + "TP_NACIONALIDADE": "nacionalidade", + "TP_ST_CONCLUSAO": "situacao_conclusao", + "TP_ANO_CONCLUIU": "ano_conclusao", + "TP_ESCOLA": "tipo_escola", + "TP_ENSINO": "ensino", + "IN_TREINEIRO": "indicador_treineiro", + "CO_MUNICIPIO_ESC": "id_municipio_escola", + "SG_UF_ESC": "sigla_uf_escola", + "TP_DEPENDENCIA_ADM_ESC": "dependencia_administrativa_escola", + "TP_LOCALIZACAO_ESC": "localizacao_escola", + "TP_SIT_FUNC_ESC": "situacao_funcionamento_escola", + "CO_MUNICIPIO_PROVA": "id_municipio_prova", + "SG_UF_PROVA": "sigla_uf_prova", + "TP_PRESENCA_CN": "presenca_ciencias_natureza", + "TP_PRESENCA_CH": "presenca_ciencias_humanas", + "TP_PRESENCA_LC": "presenca_linguagens_codigos", + "TP_PRESENCA_MT": "presenca_matematica", + "CO_PROVA_CN": "tipo_prova_ciencias_natureza", + "CO_PROVA_CH": "tipo_prova_ciencias_humanas", + "CO_PROVA_LC": "tipo_prova_linguagens_codigos", + "CO_PROVA_MT": "tipo_prova_matematica", + "NU_NOTA_CN": "nota_ciencias_natureza", + "NU_NOTA_CH": "nota_ciencias_humanas", + "NU_NOTA_LC": "nota_linguagens_codigos", + "NU_NOTA_MT": "nota_matematica", + "TX_RESPOSTAS_CN": "respostas_ciencias_natureza", + "TX_RESPOSTAS_CH": "respostas_ciencias_humanas", + "TX_RESPOSTAS_LC": "respostas_linguagens_codigos", + "TX_RESPOSTAS_MT": "respostas_matematica", + "TX_GABARITO_CN": "gabarito_ciencias_natureza", + "TX_GABARITO_CH": "gabarito_ciencias_humanas", + "TX_GABARITO_LC": "gabarito_linguagens_codigos", + "TX_GABARITO_MT": "gabarito_matematica", + "TP_LINGUA": "lingua_estrangeira", + "TP_STATUS_REDACAO": "presenca_redacao", + "NU_NOTA_COMP1": "nota_redacao_competencia_1", + "NU_NOTA_COMP2": "nota_redacao_competencia_2", + "NU_NOTA_COMP3": "nota_redacao_competencia_3", + "NU_NOTA_COMP4": "nota_redacao_competencia_4", + "NU_NOTA_COMP5": "nota_redacao_competencia_5", + "NU_NOTA_REDACAO": "nota_redacao", + } + df.rename(columns=RENAME, inplace=True) + + lista = [ + "id_inscricao", + "ano", + "faixa_etaria", + "sexo", + "id_municipio_residencia", + "sigla_uf_residencia", + "estado_civil", + "cor_raca", + "nacionalidade", + "situacao_conclusao", + "ano_conclusao", + "tipo_escola", + "ensino", + "indicador_treineiro", + "id_municipio_escola", + "sigla_uf_escola", + "dependencia_administrativa_escola", + "localizacao_escola", + "situacao_funcionamento_escola", + "indicador_certificado", + "nome_certificadora", + "sigla_uf_certificadora", + "id_municipio_prova", + "sigla_uf_prova", + "presenca_objetiva", + "tipo_prova_objetiva", + "nota_objetiva_competencia_1", + "nota_objetiva_competencia_2", + "nota_objetiva_competencia_3", + "nota_objetiva_competencia_4", + "nota_objetiva_competencia_5", + "nota_objetiva", + "respostas_objetiva", + "gabarito_objetiva", + "presenca_ciencias_natureza", + "presenca_ciencias_humanas", + "presenca_linguagens_codigos", + "presenca_matematica", + "tipo_prova_ciencias_natureza", + "tipo_prova_ciencias_humanas", + "tipo_prova_linguagens_codigos", + "tipo_prova_matematica", + "nota_ciencias_natureza", + "nota_ciencias_humanas", + "nota_linguagens_codigos", + "nota_matematica", + "respostas_ciencias_natureza", + "respostas_ciencias_humanas", + "respostas_linguagens_codigos", + "respostas_matematica", + "gabarito_ciencias_natureza", + "gabarito_ciencias_humanas", + "gabarito_linguagens_codigos", + "gabarito_matematica", + "lingua_estrangeira", + "presenca_redacao", + "nota_redacao_competencia_1", + "nota_redacao_competencia_2", + "nota_redacao_competencia_3", + "nota_redacao_competencia_4", + "nota_redacao_competencia_5", + "nota_redacao", + "indicador_questionario_socioeconomico", + ] + for col in lista: + if col not in df_lista.columns: + df_lista[col] = str(np.nan) + + for x in df_lista.columns: + df_lista[x] = df_lista[x].apply( + lambda x: str(x).replace(".0", "").replace("nan", "") + ) + + df_lista = df_lista[ + [ + "ano", + "id_inscricao", + "faixa_etaria", + "sexo", + "id_municipio_residencia", + "sigla_uf_residencia", + "estado_civil", + "cor_raca", + "nacionalidade", + "situacao_conclusao", + "ano_conclusao", + "tipo_escola", + "ensino", + "indicador_treineiro", + "id_municipio_escola", + "sigla_uf_escola", + "dependencia_administrativa_escola", + "localizacao_escola", + "situacao_funcionamento_escola", + "indicador_certificado", + "nome_certificadora", + "sigla_uf_certificadora", + "id_municipio_prova", + "sigla_uf_prova", + "presenca_objetiva", + "tipo_prova_objetiva", + "nota_objetiva_competencia_1", + "nota_objetiva_competencia_2", + "nota_objetiva_competencia_3", + "nota_objetiva_competencia_4", + "nota_objetiva_competencia_5", + "nota_objetiva", + "respostas_objetiva", + "gabarito_objetiva", + "presenca_ciencias_natureza", + "presenca_ciencias_humanas", + "presenca_linguagens_codigos", + "presenca_matematica", + "tipo_prova_ciencias_natureza", + "tipo_prova_ciencias_humanas", + "tipo_prova_linguagens_codigos", + "tipo_prova_matematica", + "nota_ciencias_natureza", + "nota_ciencias_humanas", + "nota_linguagens_codigos", + "nota_matematica", + "respostas_ciencias_natureza", + "respostas_ciencias_humanas", + "respostas_linguagens_codigos", + "respostas_matematica", + "gabarito_ciencias_natureza", + "gabarito_ciencias_humanas", + "gabarito_linguagens_codigos", + "gabarito_matematica", + "lingua_estrangeira", + "presenca_redacao", + "nota_redacao_competencia_1", + "nota_redacao_competencia_2", + "nota_redacao_competencia_3", + "nota_redacao_competencia_4", + "nota_redacao_competencia_5", + "nota_redacao", + "indicador_questionario_socioeconomico", + ] + ] + + to_partitions( + data=df_lista, + partition_columns=["ano"], + savepath="/home/tricktx/dados/br_inep_enem/main/", + file_type="csv") + +read_csv_enem() diff --git a/models/br_inep_enem/code/questionario_socioeconomico.py b/models/br_inep_enem/code/questionario_socioeconomico.py new file mode 100644 index 00000000..f8693932 --- /dev/null +++ b/models/br_inep_enem/code/questionario_socioeconomico.py @@ -0,0 +1,62 @@ +import pandas as pd +import numpy as np +import os +import requests +import gc +import warnings +from io import StringIO + +warnings.filterwarnings("ignore") + +def read_csv_enem_questionario(): + valor = 0 + for df in pd.read_csv( + "/home/tricktx/dados/br_inep_enem/Microdados ENEM 2023/DADOS/MICRODADOS_ENEM_2023.csv", + sep=";", + encoding="latin1", + chunksize=100000, + ): + valor = valor + 1 + print(valor) + df = df[ + [ + "NU_INSCRICAO", + "Q001", + "Q002", + "Q003", + "Q004", + "Q005", + "Q006", + "Q007", + "Q008", + "Q009", + "Q010", + "Q011", + "Q012", + "Q013", + "Q014", + "Q015", + "Q016", + "Q017", + "Q018", + "Q019", + "Q020", + "Q021", + "Q022", + "Q023", + "Q024", + "Q025", + ] + ] + df.rename(columns={"NU_INSCRICAO": "id_inscricao"}, inplace=True) + + path = "/home/tricktx/dados/br_inep_enem/output/questionario/" + + if not os.path.exists(path): + os.makedirs(path) + df.to_csv(os.path.join(path, "questionario_socioeconomico_2023.csv"), index=False, mode="a", header=True) + + elif os.path.exists(path): + df.to_csv(os.path.join(path, "questionario_socioeconomico_2023.csv"), index=False, mode="a", header=False) + +read_csv_enem_questionario() diff --git a/models/br_inep_enem/schema.yml b/models/br_inep_enem/schema.yml index 783cb8cb..a520dd0d 100644 --- a/models/br_inep_enem/schema.yml +++ b/models/br_inep_enem/schema.yml @@ -2,75 +2,155 @@ version: 2 models: - name: br_inep_enem__microdados - description: Microdados de notas. + description: Microdados de notas do ENEM + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: [id_inscricao, ano] + - custom_dictionary_coverage: + columns_covered_by_dictionary: + - faixa_etaria + - sexo + - estado_civil + - cor_raca + - nacionalidade + - situacao_conclusao + - tipo_escola + - ensino + - dependencia_administrativa_escola + - localizacao_escola + - situacao_funcionamento_escola + - presenca_objetiva + - tipo_prova_objetiva + - presenca_ciencias_natureza + - presenca_ciencias_humanas + - presenca_linguagens_codigos + - presenca_matematica + - tipo_prova_ciencias_natureza + - tipo_prova_ciencias_humanas + - tipo_prova_linguagens_codigos + - tipo_prova_matematica + - lingua_estrangeira + - presenca_redacao + dictionary_model: ref('br_inep_enem__dicionario') columns: + - name: id_inscricao + description: Número de inscrição no ENEM - name: ano description: Ano - - name: ano_conclusao - description: Ano de conclusão do ensino médio + tests: + - relationships: + to: ref('br_bd_diretorios_data_tempo__ano') + field: ano.ano + - name: faixa_etaria + description: Faixa etária + - name: sexo + description: Sexo + - name: id_municipio_residencia + description: ID Município da residência - IBGE 7 Dígitos + tests: + - custom_relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + ignore_values: + - '5200' + - '3208' + - '35507' + - '50308' + - '4557' + - '14902' + - '9502' + - '24808' + - '14407' + - '6200' + - '5108' + - '48708' + - '5109' + - '18105' + - '3403' + - '22505' + - '13705' + - '43402' + - '27408' + - '1108' + - '36504' + - '13700' + - '2105' + - '102' + - '2405' + - '0' + - '16602' + - '8201' + - '108' + - '12906' + - '11606' + - name: sigla_uf_residencia + description: Sigla da unidade da federação da residência + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: estado_civil + description: Estado civil - name: cor_raca description: Cor ou raça - - name: dependencia_administrativa_escola - description: Dependência administrativa da escola em que estudou + - name: nacionalidade + description: Nacionalidade + - name: situacao_conclusao + description: Situação em relação ao ensino médio + - name: ano_conclusao + description: Ano de conclusão do ensino médio + - name: tipo_escola + description: Tipo de escola do ensino médio - name: ensino description: Tipo de instituição onde o estudante concluiu ou concluirá o ensino médio - - name: estado_civil - description: Estado civil - - name: faixa_etaria - description: Faixa etária - - name: gabarito_ciencias_humanas - description: 'Vetor com o gabarito da parte objetiva da prova de Ciências - Humanas (Obs.: as 45 primeiras posições deste campo são referentes ao respectivo - gabarito)' - - name: gabarito_ciencias_natureza - description: 'Vetor com o gabarito da parte objetiva da prova de Ciências - da Natureza (Obs.: as 45 primeiras posições deste campo são referentes ao - respectivo gabarito)' - - name: gabarito_linguagens_codigos - description: 'Vetor com o gabarito da parte objetiva da prova de Linguagens - e Códigos (Obs.: as 45 primeiras posições deste campo são referentes ao - respectivo gabarito)' - - name: gabarito_matematica - description: 'Vetor com o gabarito da parte objetiva da prova de Matemática - (Obs.: as 45 primeiras posições deste campo são referentes ao respectivo - gabarito)' - - name: gabarito_objetiva - description: Vetor com o gabarito da parte objetiva da prova - - name: id_inscricao - description: Número de inscrição no ENEM - - name: id_municipio_escola - description: ID Município da escola em que estudou - IBGE 7 Dígitos - - name: id_municipio_prova - description: ID Município da cidade da prova - IBGE 7 Dígitos - - name: id_municipio_residencia - description: ID Município da residência - IBGE 7 Dígitos - - name: indicador_certificado - description: Indicador de que o inscrito solicitará certificação no ensino - médio - - name: indicador_questionario_socioeconomico - description: Respondeu o Questionário Socioeconômico - name: indicador_treineiro description: Indica se o inscrito fez a prova com intuito de apenas treinar seus conhecimentos - - name: lingua_estrangeira - description: Língua Estrangeira + - name: id_municipio_escola + description: ID Município da escola em que estudou - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: sigla_uf_escola + description: Sigla da unidade da federação da escola em que estudou + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: dependencia_administrativa_escola + description: Dependência administrativa da escola em que estudou - name: localizacao_escola description: Localização/zona da escola em que estudou - - name: nacionalidade - description: Nacionalidade + - name: situacao_funcionamento_escola + description: Situação de funcionamento da escola em que estudou + - name: indicador_certificado + description: Inscrito solicitará certificação no ensino médio - name: nome_certificadora description: Nome da entidade certificadora - - name: nota_ciencias_humanas - description: Nota da prova de Ciências Humanas - - name: nota_ciencias_natureza - description: Nota da prova de Ciências da Natureza - - name: nota_linguagens_codigos - description: Nota da prova de Linguagens e Códigos - - name: nota_matematica - description: Nota da prova de Matemática - - name: nota_objetiva - description: Nota da prova objetiva + - name: sigla_uf_certificadora + description: Sigla da unidade da federação da entidade certificadora + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: id_municipio_prova + description: ID Município da cidade da prova - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio + - name: sigla_uf_prova + description: Sigla da unidade da federação da prova + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + - name: presenca_objetiva + description: Presença a prova objetiva + - name: tipo_prova_objetiva + description: Tipo de prova - name: nota_objetiva_competencia_1 description: Nota da competência 1 - name: nota_objetiva_competencia_2 @@ -81,69 +161,177 @@ models: description: Nota da competência 4 - name: nota_objetiva_competencia_5 description: Nota da competência 5 - - name: nota_redacao - description: Nota da prova de redação - - name: nota_redacao_competencia_1 - description: Nota da competência 1 - - name: nota_redacao_competencia_2 - description: Nota da competência 2 - - name: nota_redacao_competencia_3 - description: Nota da competência 3 - - name: nota_redacao_competencia_4 - description: Nota da competência 4 - - name: nota_redacao_competencia_5 - description: Nota da competência 5 - - name: presenca_ciencias_humanas - description: Presença à prova objetiva de Ciências Humanas + - name: nota_objetiva + description: Nota da prova objetiva + - name: respostas_objetiva + description: Vetor com as respostas da parte objetiva da prova + - name: gabarito_objetiva + description: Vetor com o gabarito da parte objetiva da prova - name: presenca_ciencias_natureza description: Presença à prova objetiva de Ciências da Natureza + - name: presenca_ciencias_humanas + description: Presença à prova objetiva de Ciências Humanas - name: presenca_linguagens_codigos description: Presença à prova objetiva de Linguagens e Códigos - name: presenca_matematica description: Presença à prova objetiva de Matemática - - name: presenca_objetiva - description: Presença a prova objetiva - - name: presenca_redacao - description: Presença à redação - - name: respostas_ciencias_humanas - description: Vetor com as respostas da parte objetiva da prova de Ciências - Humanas + - name: tipo_prova_ciencias_natureza + description: Código do tipo de prova de Ciências da Natureza + - name: tipo_prova_ciencias_humanas + description: Código do tipo de prova de Ciências Humanas + - name: tipo_prova_linguagens_codigos + description: Código do tipo de prova de Linguagens e Códigos + - name: tipo_prova_matematica + description: Código do tipo de prova de Matemática + - name: nota_ciencias_natureza + description: Nota da prova de Ciências da Natureza + - name: nota_ciencias_humanas + description: Nota da prova de Ciências Humanas + - name: nota_linguagens_codigos + description: Nota da prova de Linguagens e Códigos + - name: nota_matematica + description: Nota da prova de Matemática - name: respostas_ciencias_natureza description: Vetor com as respostas da parte objetiva da prova de Ciências da Natureza + - name: respostas_ciencias_humanas + description: Vetor com as respostas da parte objetiva da prova de Ciências + Humanas - name: respostas_linguagens_codigos description: Vetor com as respostas da parte objetiva da prova de Linguagens e Códigos - name: respostas_matematica description: Vetor com as respostas da parte objetiva da prova de Matemática - - name: respostas_objetiva - description: Vetor com as respostas da parte objetiva da prova - - name: sexo - description: Sexo - - name: sigla_uf_certificadora - description: Sigla da unidade da federação da entidade certificadora - - name: sigla_uf_escola - description: Sigla da unidade da federação da escola em que estudou - - name: sigla_uf_prova - description: Sigla da unidade da federação da prova - - name: sigla_uf_residencia - description: Sigla da unidade da federação da residência - - name: situacao_conclusao - description: Situação em relação ao ensino médio - - name: situacao_funcionamento_escola - description: Situação de funcionamento da escola em que estudou - - name: tipo_escola - description: Tipo de escola do ensino médio - - name: tipo_prova_ciencias_humanas - description: Código do tipo de prova de Ciências Humanas - - name: tipo_prova_ciencias_natureza - description: Código do tipo de prova de Ciências da Natureza - - name: tipo_prova_linguagens_codigos - description: Código do tipo de prova de Linguagens e Códigos - - name: tipo_prova_matematica - description: Código do tipo de prova de Matemática - - name: tipo_prova_objetiva - description: Tipo de prova + - name: gabarito_ciencias_natureza + description: 'Vetor com o gabarito da parte objetiva da prova de Ciências + da Natureza (Obs.: as 45 primeiras posições deste campo são referentes ao + respectivo gabarito)' + - name: gabarito_ciencias_humanas + description: 'Vetor com o gabarito da parte objetiva da prova de Ciências + Humanas (Obs.: as 45 primeiras posições deste campo são referentes ao respectivo + gabarito)' + - name: gabarito_linguagens_codigos + description: 'Vetor com o gabarito da parte objetiva da prova de Linguagens + e Códigos (Obs.: as 45 primeiras posições deste campo são referentes ao + respectivo gabarito)' + - name: gabarito_matematica + description: 'Vetor com o gabarito da parte objetiva da prova de Matemática + (Obs.: as 45 primeiras posições deste campo são referentes ao respectivo + gabarito)' + - name: lingua_estrangeira + description: Língua Estrangeira + - name: presenca_redacao + description: Presença à redação + - name: nota_redacao_competencia_1 + description: Nota da competência 1 + - name: nota_redacao_competencia_2 + description: Nota da competência 2 + - name: nota_redacao_competencia_3 + description: Nota da competência 3 + - name: nota_redacao_competencia_4 + description: Nota da competência 4 + - name: nota_redacao_competencia_5 + description: Nota da competência 5 + - name: nota_redacao + description: Nota da prova de redação + - name: indicador_questionario_socioeconomico + description: Respondeu o Questionário Socioeconômico + - name: br_inep_enem__questionario_socioeconomico_2023 + description: Respostas do questionário socioeconômico de 2023. + tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: [id_inscricao] + - custom_dictionary_coverage: + columns_covered_by_dictionary: + - q001 + - q002 + - q003 + - q004 + - q005 + - q006 + - q007 + - q008 + - q009 + - q010 + - q011 + - q012 + - q013 + - q014 + - q015 + - q016 + - q017 + - q018 + - q019 + - q020 + - q021 + - q022 + - q023 + - q024 + - q025 + dictionary_model: ref('br_inep_enem__dicionario') + columns: + - name: id_inscricao + description: Número de inscrição no ENEM + - name: q001 + description: Até que série seu pai, ou o homem responsável por você, estudou? + - name: q002 + description: Até que série sua mãe, ou a mulher responsável por você, estudou? + - name: q003 + description: A partir da apresentação de algumas ocupações divididas em grupos + ordenados, indique o grupo que contempla a ocupação mais próxima da ocupação + do seu pai ou do homem responsável por você. (Se ele não estiver trabalhando, + escolha uma ocupação pensando no último trabalho dele). + - name: q004 + description: A partir da apresentação de algumas ocupações divididas em grupos + ordenados, indique o grupo que contempla a ocupação mais próxima da ocupação + da sua mãe ou da mulher responsável por você. (Se ela não estiver trabalhando, + escolha uma ocupação pensando no último trabalho dela). + - name: q005 + description: Incluindo você, quantas pessoas moram atualmente em sua residência? + - name: q006 + description: Qual é a renda mensal de sua família? (Some a sua renda com a + dos seus familiares.) + - name: q007 + description: Em sua residência trabalha empregado(a) doméstico(a)? + - name: q008 + description: Na sua residência tem banheiro? + - name: q009 + description: Na sua residência tem quartos para dormir? + - name: q010 + description: Na sua residência tem carro? + - name: q011 + description: Na sua residência tem motocicleta? + - name: q012 + description: Na sua residência tem geladeira? + - name: q013 + description: Na sua residência tem freezer (independente ou segunda porta + da geladeira)? + - name: q014 + description: Na sua residência tem máquina de lavar roupa? (o tanquinho NÃO + deve ser considerado) + - name: q015 + description: Na sua residência tem máquina de secar roupa (independente ou + em conjunto com a máquina de lavar roupa)? + - name: q016 + description: Na sua residência tem forno micro-ondas? + - name: q017 + description: Na sua residência tem máquina de lavar louça? + - name: q018 + description: Na sua residência tem aspirador de pó? + - name: q019 + description: Na sua residência tem televisão em cores? + - name: q020 + description: Na sua residência tem aparelho de DVD? + - name: q021 + description: Na sua residência tem TV por assinatura? + - name: q022 + description: Na sua residência tem telefone celular? + - name: q023 + description: Na sua residência tem telefone fixo? + - name: q024 + description: Na sua residência tem computador? + - name: q025 + description: Na sua residência tem acesso à Internet? - name: questionario_socioeconomico_1998 description: Respostas do questionário socioeconômico de 1998. columns: