<jupyter_start><jupyter_text>Dataset AmostralOlá! Provavelmente você parou aqui ao iniciar a leitura sobre nossa Análise Exploratória! Lembra que temos um dataset de 3.2GB? Seria impossível trabalhar com ele em nossos meros notebooks. Por isso, iremos separar um dataset menor, para o estudo. **Importando as Bibliotecas**<jupyter_code>import pandas as pd
import numpy as np
import random<jupyter_output><empty_output><jupyter_text>Bem, tinhamos um sério problema com o Pandas. Poderíamos muito bem pegar X linhas. Mas... Ele ia pegar em ordem... Ou seja, não íamos ter aleatoriedade em nossa Amostra. E isso é MUITO RUIM... Imagina só:Este dataset está por ordem de inscrição. Imagine que as inscrições abriram e o Estado do Ceará FICOU SEM INTERNET POR 2 DIAS! Já viu, né? Provavelmente não teríamos candidatos do Ceará em nossa amostra. E já era nosso trabalho. Para contornar esta situação, então, fizemos que nem a Dory!![](https://i.pinimg.com/originals/34/bc/c1/34bcc1ca0466693392307810df154105.gif)E para isso, fizemos uma "gambiarrra" para pegar, de forma aleatória, `2.5%` do total de candidatos. Parece pouco? Olha os números depois...Resolvemos criar uma função para fazer isso pois mais tarde iremos utilizar novamente e tudo ficaraá mais claro! Prometemos!**P.S**: Note que o arquivo `MICRODADOS_ENEM_2019.csv` não está neste repositório. Ele pesa 3.2GB e é impossível upar ele no GitHub. Caso queira vê-lo, segue o link:**ATENÇÃO! NÃO PRECISA BAIXAR!** Link para Download do Dataset e Dados Completos<jupyter_code>def criaDatasetAmostral(seed,p):
    fonte = 'MICRODADOS_ENEM_2019.csv'

    np.random.seed(seed) # Setamos o padrão de Aleatoriaedade

    total_linhas = sum(1 for l in open(fonte,encoding="ISO-8859-1"))
    print(f'Total de Linhas do Dataframe Completo: {total_linhas}')

    tamanho = int(total_linhas*p)
    print(f'Total de Linhas da Amostra Gerada: {tamanho}')

    index = random.sample(range(1, total_linhas), total_linhas - tamanho)

    dados = pd.read_csv(fonte,encoding="ISO-8859-1",delimiter=";",skiprows=index)
    
    print('Dataset Amostral Gerado com Sucesso!')
        
    return dados<jupyter_output><empty_output><jupyter_text>Gerando o Dataset para Estudo Olha que legal! Agora basta chamarmos esta função para gerar um dataset BEM MENOR para estudo e, futuramente... PARA TESTAR NOSSO MODELO PREDITIVO!<jupyter_code>dados=criaDatasetAmostral(42511,0.025) # Parâmetros(seed aleatória, percentual da amostra)
dados.head()
dados.columns.values
destino = "MICRODADOS_ENEM_2019_SAMPLE_ESTUDO.csv"

dados.to_csv(destino, index=False)<jupyter_output><empty_output><jupyter_text>Gerando o Dataset para Teste do Modelo Preditivo<jupyter_code>dados_teste=criaDatasetAmostral(1234,0.005) # Parâmetros(seed aleatória, percentual da amostra)
dados_teste.head()
destino = "MICRODADOS_ENEM_2019_SAMPLE_TESTE.csv"

dados_teste.to_csv(destino, index=False)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.08418891170431211, 'fraction_numerical': 0.02737850787132101, 'mean_word_length': 5.568539325842696, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 17, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '555027', 'license': 'MIT', 'n_tokens_mistral': 1168, 'n_tokens_neox': 1088, 'n_words': 311, 'path': 'Criando Dataset Menor.ipynb', 'repo_name': 'DaviReisVieira/Projeto-2-CDados', 'size': '2922'}