diff --git a/Carolyne-Oliveira/Base de dados/Eleicoes2024.zip b/Carolyne-Oliveira/Base de dados/Eleicoes2024.zip
new file mode 100644
index 0000000..28ba6ed
Binary files /dev/null and b/Carolyne-Oliveira/Base de dados/Eleicoes2024.zip differ
diff --git a/Carolyne-Oliveira/Base de dados/consulta_cand_2024_SP.zip b/Carolyne-Oliveira/Base de dados/consulta_cand_2024_SP.zip
new file mode 100644
index 0000000..0325d96
Binary files /dev/null and b/Carolyne-Oliveira/Base de dados/consulta_cand_2024_SP.zip differ
diff --git a/Carolyne-Oliveira/Base de dados/consulta_cand_complementar_2024_SP.zip b/Carolyne-Oliveira/Base de dados/consulta_cand_complementar_2024_SP.zip
new file mode 100644
index 0000000..62cc130
Binary files /dev/null and b/Carolyne-Oliveira/Base de dados/consulta_cand_complementar_2024_SP.zip differ
diff --git a/Carolyne-Oliveira/Base de dados/leiame - consulta_cand_2024_SP.pdf b/Carolyne-Oliveira/Base de dados/leiame - consulta_cand_2024_SP.pdf
new file mode 100644
index 0000000..8a2ff65
Binary files /dev/null and b/Carolyne-Oliveira/Base de dados/leiame - consulta_cand_2024_SP.pdf differ
diff --git a/Carolyne-Oliveira/Base de dados/leiame - consulta_cand_complementar_2024_SP.pdf b/Carolyne-Oliveira/Base de dados/leiame - consulta_cand_complementar_2024_SP.pdf
new file mode 100644
index 0000000..ef520ad
Binary files /dev/null and b/Carolyne-Oliveira/Base de dados/leiame - consulta_cand_complementar_2024_SP.pdf differ
diff --git "a/Carolyne-Oliveira/Elei\303\247\303\265es_SP_2024.ipynb" "b/Carolyne-Oliveira/Elei\303\247\303\265es_SP_2024.ipynb"
new file mode 100644
index 0000000..348cae3
--- /dev/null
+++ "b/Carolyne-Oliveira/Elei\303\247\303\265es_SP_2024.ipynb"
@@ -0,0 +1,4918 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "rEgHAdIFceJS"
+ },
+ "source": [
+ "\n",
+ "#Introdução\n",
+ "\n",
+ "As bases de dados escolhidas foram obtidas no site do Tribunal Superior Eleitoral ([TSE](https://dadosabertos.tse.jus.br/dataset/candidatos-2024)), e são referentes às eleições de 2024 para os cargos de prefeito, vice-prefeito e vereador de São Paulo. A escolha desse dataset foi motivada pelo atual cenário político brasileiro, marcado por incertezas e debates sobre o futuro político e administrativo do estado de São Paulo. Analisar esses dados é crucial, pois as eleições municipais têm um impacto direto nas políticas públicas que afetam a vida dos cidadãos, e entender os padrões e tendências pode fornecer insights valiosos para prever possíveis desdobramentos e influências no cenário político local.\n",
+ "\n",
+ "O que chamou a atenção nesses dados foi a riqueza de detalhes disponíveis, como informações sobre candidaturas, despesas de campanha, distribuição por gênero, idade, e partido. Esses aspectos são fundamentais para entender melhor o perfil dos candidatos, as estratégias eleitorais adotadas e como esses fatores podem influenciar os resultados eleitorais. Acredita-se que essa análise pode gerar bons insights, como identificar tendências de investimento em campanhas, padrões de participação feminina nas eleições, e a relação entre gasto de campanha e sucesso eleitoral."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "-k6Z_s39lt5h"
+ },
+ "source": [
+ "#Bibliotecas"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {
+ "id": "VC5lvo2j7Uuh"
+ },
+ "outputs": [],
+ "source": [
+ "#importar bibliotecas\n",
+ "import pandas as pd\n",
+ "import matplotlib.pyplot as plt\n",
+ "from datetime import datetime\n",
+ "import seaborn as sns\n",
+ "import sqlite3\n",
+ "from google.colab import files\n",
+ "import numpy as np\n",
+ "import plotly.express as px\n",
+ "from scipy import stats\n",
+ "from scipy.stats import f_oneway\n",
+ "import statsmodels.stats.multicomp as mc\n",
+ "from scipy.stats import kruskal"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "0JIfS5fZlvCa"
+ },
+ "source": [
+ "#Alterar a linguagem"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 35,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "gjVz9EvaNk4B",
+ "outputId": "ca7afe96-6037-48dc-f4c8-3c336f3ef166"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Requirement already satisfied: chardet in /usr/local/lib/python3.10/dist-packages (5.2.0)\n"
+ ]
+ }
+ ],
+ "source": [
+ "#pacote para identificar o encoding da base de dados\n",
+ "!pip install chardet"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "-RJGl1Z74OUd"
+ },
+ "source": [
+ "-Base Candidatos"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 36,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "4zP0JD7ZNmG0",
+ "outputId": "6f19000a-3f65-4f29-a1b0-5de4423cb4ed"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'encoding': 'ISO-8859-1', 'confidence': 0.73, 'language': ''}\n"
+ ]
+ }
+ ],
+ "source": [
+ "#identificando o encoding e a linguagem da base de dados\n",
+ "import chardet\n",
+ "\n",
+ "with open('/content/drive/MyDrive/REPROGRAMA/on33-python-s13-projeto-guiado-II/Projeto Guiado/consulta_cand_2024/consulta_cand_2024_SP.csv', 'rb') as rawdata:\n",
+ " result = chardet.detect(rawdata.read(100000)) # Read a portion of the file\n",
+ "\n",
+ "print(result)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 37,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "aHsS7plHQ3wV",
+ "outputId": "dbb7b63d-1fee-42f1-ba08-4269ac6a8962"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\"27/08/2024\";\"19:30:34\";2024;2;\"ELEI��O ORDIN�RIA\";1;619;\"Elei��es Municipais 2024\";\"06/10/2024\";\"MUNICIPAL\";\"SP\";\"67130\";\"MOGI DAS CRUZES\";13;\"VEREADOR\";250001997507;10789;\"MARTA VITORINO JANU�RIO\";\"MARTINHA\";\"#NULO#\";\"-4\";\"N�O DIVULG�VEL\";-3;\"#NE\";\"PARTIDO ISOLADO\";10;\"REPUBLICANOS\";\"REPUBLICANOS\";-1;\"#NULO#\";\"#NULO#\";\"#NULO#\";250001706184;\"PARTIDO ISOLADO\";\"REPUBLICANOS - REPUBLICANOS - MOGI DAS CRUZES - SP\";\"SP\";\"09/05/1962\";\"031083510108\";4;\"FEMININO\";6;\"ENSINO M�DIO COMPLETO\";1;\"SOLTEIRO(A)\";\"01\";\"BRANCA\";298;\"SERVIDOR P�BLICO MUNICIPAL\";-1;\"#NULO#\"\r\n",
+ "\"27/08/2024\";\"19:30:34\";2024;2;\"ELEI��O ORDIN�RIA\";1;619;\"Elei��es Municipais 2024\";\"06/10/2024\";\"MUNICIPAL\";\"SP\";\"69213\";\"PRAIA GRANDE\";13;\"VEREADOR\";250002318218;20333;\"JOAO BENEDITO ALVES MAGALHAES\";\"JO�O MAGALHAES\";\"#NULO#\";\"-4\";\"N�O DIVULG�VEL\";-3;\"#NE\";\"PARTIDO ISOLADO\";20;\"PODE\";\"PODEMOS\";-1;\"#NULO#\";\"#NULO#\";\"#NULO#\";250001754918;\"PARTIDO ISOLADO\";\"Podemos - PODE - PRAIA GRANDE - SP\";\"CE\";\"12/04/1955\";\"042346480779\";2;\"MASCULINO\";6;\"ENSINO M�DIO COMPLETO\";9;\"DIVORCIADO(A)\";\"01\";\"BRANCA\";512;\"CABELEIREIRO E BARBEIRO\";-1;\"#NULO#\"\r\n",
+ "\"27/08/2024\";\"19:30:34\";2024;2;\"ELEI��O ORDIN�RIA\";1;619;\"Elei��es Municipais 2024\";\"06/10/2024\";\"MUNICIPAL\";\"SP\";\"61794\";\"ASSIS\";13;\"VEREADOR\";250002298988;22193;\"REYNALDO CAMPANATTI PEREIRA\";\"PROFESSOR CAMPANATTI\";\"#NULO#\";\"-4\";\"N�O DIVULG�VEL\";-3;\"#NE\";\"PARTIDO ISOLADO\";22;\"PL\";\"PARTIDO LIBERAL\";-1;\"#NULO#\";\"#NULO#\";\"#NULO#\";250001752092;\"PARTIDO ISOLADO\";\"Partido Liberal - PL - ASSIS - SP\";\"SP\";\"08/02/1961\";\"011521510116\";2;\"MASCULINO\";8;\"SUPERIOR COMPLETO\";3;\"CASADO(A)\";\"01\";\"BRANCA\";142;\"PROFESSOR DE ENSINO SUPERIOR\";-1;\"#NULO#\"\r\n",
+ "\"27/08/2024\";\"19:30:34\";2024;2;\"ELEI��O ORDIN�RIA\";1;619;\"Elei��es Municipais 2024\";\"06/10/2024\";\"MUNICIPAL\";\"SP\";\"65757\";\"ITIRAPU�\";12;\"VICE-PREFEITO\";250002276467;10;\"WELLINGTON NAVES MOREIRA\";\"GUGU\";\"#NULO#\";\"-4\";\"N�O DIVULG�VEL\";-3;\"#NE\";\"COLIGA��O\";44;\"UNI�O\";\"UNI�O BRASIL\";-1;\"#NULO#\";\"#NULO#\";\"#NULO#\";250001749141;\"Coragem para renovar e fazer acontecer\";\"Coragem para renovar e fazer acontecer [REPUBLICANOS - REPUBLICANOS, Uni�o Brasil - UNI�O] - ITIRAPU� - SP\";\"SP\";\"10/11/1995\";\"411068580108\";2;\"MASCULINO\";6;\"ENSINO M�DIO COMPLETO\";3;\"CASADO(A)\";\"03\";\"PARDA\";169;\"COMERCIANTE\";-1;\"#NULO#\"\r\n",
+ "\"27/08/2024\";\"19:30:34\";2024;2;\"ELEI��O ORDIN�RIA\";1;619;\"Elei��es Municipais 2024\";\"06/10/2024\";\"MUNICIPAL\";\"SP\";\"70173\";\"SANTA B�RBARA D'OESTE\";13;\"VEREADOR\";250002278635;23666;\"JOS� CARLOS JERONIMO PINTO\";\"JOS� CARLOS\";\"#NULO#\";\"-4\";\"N�O DIVULG�VEL\";-3;\"#NE\";\"FEDERA��O\";23;\"CIDADANIA\";\"CIDADANIA\";100;\"Federa��o PSDB CIDADANIA\";\"PSDB/CIDADANIA\";\"PSDB/CIDADANIA\";250001749432;\"FEDERA��O\";\"Federa��o PSDB CIDADANIA (PSDB/CIDADANIA) - SANTA B�RBARA D'OESTE - SP\";\"SP\";\"12/10/1967\";\"352702290108\";2;\"MASCULINO\";3;\"ENSINO FUNDAMENTAL INCOMPLETO\";3;\"CASADO(A)\";\"01\";\"BRANCA\";999;\"OUTROS\";-1;\"#NULO#\"\r\n"
+ ]
+ }
+ ],
+ "source": [
+ "#visualização da base de dados\n",
+ "!head -n 25 '/content/drive/MyDrive/REPROGRAMA/on33-python-s13-projeto-guiado-II/Projeto Guiado/consulta_cand_2024/consulta_cand_2024_SP.csv' | tail -n 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {
+ "id": "5gZuFBoVRb8h"
+ },
+ "outputs": [],
+ "source": [
+ "#Substituir \";\"\n",
+ "# 'on_bad_lines' indica o que fazer em linhas com erros\n",
+ "# 'skip' irá pular linhas que causam erros.\n",
+ "candidato = pd.read_csv('/content/drive/MyDrive/REPROGRAMA/on33-python-s13-projeto-guiado-II/Projeto Guiado/consulta_cand_2024/consulta_cand_2024_SP.csv', encoding='ISO-8859-1', sep=';', on_bad_lines='skip')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "1ou2LpeG4R4e"
+ },
+ "source": [
+ "-Base Complemento"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "JT4ooCnV4VGf",
+ "outputId": "99aa7354-8955-4c30-bc71-8a2da2bc673c"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'encoding': 'ISO-8859-1', 'confidence': 0.73, 'language': ''}\n"
+ ]
+ }
+ ],
+ "source": [
+ "#identificando o encoding e a linguagem da base de dados\n",
+ "import chardet\n",
+ "\n",
+ "with open('/content/drive/MyDrive/REPROGRAMA/on33-python-s13-projeto-guiado-II/Projeto Guiado/consulta_cand_complementar_2024/consulta_cand_complementar_2024_SP.csv', 'rb') as rawdata:\n",
+ " result = chardet.detect(rawdata.read(100000)) # Read a portion of the file\n",
+ "\n",
+ "print(result)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "sH8y1d51409s",
+ "outputId": "b04d285b-c96a-43a9-f0f0-32bc0d693709"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\"27/08/2024\";\"19:30:34\";2024;619;250002023453;-3;\"#NE\";1;\"BRASILEIRA NATA\";-3;\"MAIRINQUE\";\"37\";\"N\";-1;\"#NULO#\";\"53179.07\";\"N\";\"S\";\"-1\";\"06004589120246260131\";\"-3\";\"#NE\";\"-3\";\"#NE\";\"N�O\";\"#NULO#\";-1;\"#NULO#\";\"N\";\"N\";-1;-1;\"2024-08-08 14:54:46\";8;\"AGUARDANDO JULGAMENTO\";\"-1\";\"#NULO#\";\"-1\";\"#NULO#\";-1;\"#NULO#\";-1;\"#NULO#\";-1;\"#NULO#\"\r\n",
+ "\"27/08/2024\";\"19:30:34\";2024;619;250002013157;-3;\"#NE\";1;\"BRASILEIRA NATA\";-3;\"PRESIDENTE EPIT�CIO\";\"25\";\"N\";-1;\"#NULO#\";\"38659.48\";\"N\";\"S\";\"-1\";\"06001237420246260195\";\"-3\";\"#NE\";\"-3\";\"#NE\";\"N�O\";\"#NULO#\";-1;\"#NULO#\";\"N\";\"N\";-1;-1;\"2024-08-08 11:28:01\";8;\"AGUARDANDO JULGAMENTO\";\"-1\";\"#NULO#\";\"-1\";\"#NULO#\";-1;\"#NULO#\";-1;\"#NULO#\";-1;\"#NULO#\"\r\n",
+ "\"27/08/2024\";\"19:30:34\";2024;619;250002257538;-3;\"#NE\";1;\"BRASILEIRA NATA\";-3;\"ITAPETININGA\";\"34\";\"N\";0;\"N�O INFORMADO\";\"15985.08\";\"N\";\"N\";\"-1\";\"06003226920246260010\";\"-3\";\"#NE\";\"-3\";\"#NE\";\"N�O\";\"#NULO#\";-1;\"#NULO#\";\"N\";\"N\";-1;-1;\"2024-08-14 11:04:24\";8;\"AGUARDANDO JULGAMENTO\";\"-1\";\"#NULO#\";\"-1\";\"#NULO#\";-1;\"#NULO#\";-1;\"#NULO#\";-1;\"#NULO#\"\r\n",
+ "\"27/08/2024\";\"19:30:34\";2024;619;250001957869;-3;\"#NE\";1;\"BRASILEIRA NATA\";-3;\"JANDIRA\";\"27\";\"N\";-1;\"#NULO#\";\"85642.85\";\"N\";\"S\";\"-1\";\"06002559520246260304\";\"-3\";\"#NE\";\"-3\";\"#NE\";\"N�O\";\"#NULO#\";-1;\"#NULO#\";\"N\";\"N\";-1;-1;\"2024-08-05 19:10:31\";8;\"AGUARDANDO JULGAMENTO\";\"-1\";\"#NULO#\";\"-1\";\"#NULO#\";-1;\"#NULO#\";-1;\"#NULO#\";-1;\"#NULO#\"\r\n",
+ "\"27/08/2024\";\"19:30:34\";2024;619;250002023723;-3;\"#NE\";1;\"BRASILEIRA NATA\";-3;\"INDAIATUBA\";\"44\";\"N\";-1;\"#NULO#\";\"129911.43\";\"N\";\"S\";\"-1\";\"06001795920246260211\";\"-3\";\"#NE\";\"-3\";\"#NE\";\"N�O\";\"#NULO#\";-1;\"#NULO#\";\"N\";\"N\";-1;-1;\"2024-08-08 15:00:43\";8;\"AGUARDANDO JULGAMENTO\";\"-1\";\"#NULO#\";\"-1\";\"#NULO#\";-1;\"#NULO#\";-1;\"#NULO#\";-1;\"#NULO#\"\r\n"
+ ]
+ }
+ ],
+ "source": [
+ "#visualização da base de dados\n",
+ "!head -n 25 '/content/drive/MyDrive/REPROGRAMA/on33-python-s13-projeto-guiado-II/Projeto Guiado/consulta_cand_complementar_2024/consulta_cand_complementar_2024_SP.csv' | tail -n 5"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "metadata": {
+ "id": "VfR1AsH94_Nk"
+ },
+ "outputs": [],
+ "source": [
+ "#Substituir \";\"\n",
+ "# 'on_bad_lines' indica o que fazer em linhas com erros\n",
+ "# 'skip' irá pular linhas que causam erros.\n",
+ "complemento = pd.read_csv('/content/drive/MyDrive/REPROGRAMA/on33-python-s13-projeto-guiado-II/Projeto Guiado/consulta_cand_complementar_2024/consulta_cand_complementar_2024_SP.csv', encoding='ISO-8859-1', sep=';', on_bad_lines='skip')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "uQQZJuWvvrDs"
+ },
+ "source": [
+ "#Análise Descritiva da Base de Dados"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "J66o_07A9Jzk"
+ },
+ "source": [
+ "-Base Candidato"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "ljZltjtCmsqB",
+ "outputId": "c76440a4-a537-44df-c06c-9c92b135e1e7"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index(['DT_GERACAO', 'HH_GERACAO', 'ANO_ELEICAO', 'CD_TIPO_ELEICAO',\n",
+ " 'NM_TIPO_ELEICAO', 'NR_TURNO', 'CD_ELEICAO', 'DS_ELEICAO', 'DT_ELEICAO',\n",
+ " 'TP_ABRANGENCIA_ELEICAO', 'SG_UF', 'SG_UE', 'NM_UE', 'CD_CARGO',\n",
+ " 'DS_CARGO', 'SQ_CANDIDATO', 'NR_CANDIDATO', 'NM_CANDIDATO',\n",
+ " 'NM_URNA_CANDIDATO', 'NM_SOCIAL_CANDIDATO', 'NR_CPF_CANDIDATO',\n",
+ " 'DS_EMAIL', 'CD_SITUACAO_CANDIDATURA', 'DS_SITUACAO_CANDIDATURA',\n",
+ " 'TP_AGREMIACAO', 'NR_PARTIDO', 'SG_PARTIDO', 'NM_PARTIDO',\n",
+ " 'NR_FEDERACAO', 'NM_FEDERACAO', 'SG_FEDERACAO',\n",
+ " 'DS_COMPOSICAO_FEDERACAO', 'SQ_COLIGACAO', 'NM_COLIGACAO',\n",
+ " 'DS_COMPOSICAO_COLIGACAO', 'SG_UF_NASCIMENTO', 'DT_NASCIMENTO',\n",
+ " 'NR_TITULO_ELEITORAL_CANDIDATO', 'CD_GENERO', 'DS_GENERO',\n",
+ " 'CD_GRAU_INSTRUCAO', 'DS_GRAU_INSTRUCAO', 'CD_ESTADO_CIVIL',\n",
+ " 'DS_ESTADO_CIVIL', 'CD_COR_RACA', 'DS_COR_RACA', 'CD_OCUPACAO',\n",
+ " 'DS_OCUPACAO', 'CD_SIT_TOT_TURNO', 'DS_SIT_TOT_TURNO'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 42,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#Verificar as colunas na base de dados\n",
+ "candidato.columns"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 0
+ },
+ "id": "-td-EVjYR2p1",
+ "outputId": "29bca74d-a347-41e9-c642-946518b1fa8d"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe",
+ "variable_name": "candidato"
+ },
+ "text/html": [
+ "\n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " DT_GERACAO | \n",
+ " HH_GERACAO | \n",
+ " ANO_ELEICAO | \n",
+ " CD_TIPO_ELEICAO | \n",
+ " NM_TIPO_ELEICAO | \n",
+ " NR_TURNO | \n",
+ " CD_ELEICAO | \n",
+ " DS_ELEICAO | \n",
+ " DT_ELEICAO | \n",
+ " TP_ABRANGENCIA_ELEICAO | \n",
+ " ... | \n",
+ " CD_GRAU_INSTRUCAO | \n",
+ " DS_GRAU_INSTRUCAO | \n",
+ " CD_ESTADO_CIVIL | \n",
+ " DS_ESTADO_CIVIL | \n",
+ " CD_COR_RACA | \n",
+ " DS_COR_RACA | \n",
+ " CD_OCUPACAO | \n",
+ " DS_OCUPACAO | \n",
+ " CD_SIT_TOT_TURNO | \n",
+ " DS_SIT_TOT_TURNO | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 27/08/2024 | \n",
+ " 19:30:34 | \n",
+ " 2024 | \n",
+ " 2 | \n",
+ " ELEIÇÃO ORDINÁRIA | \n",
+ " 1 | \n",
+ " 619 | \n",
+ " Eleições Municipais 2024 | \n",
+ " 06/10/2024 | \n",
+ " MUNICIPAL | \n",
+ " ... | \n",
+ " 6 | \n",
+ " ENSINO MÉDIO COMPLETO | \n",
+ " 3 | \n",
+ " CASADO(A) | \n",
+ " 1 | \n",
+ " BRANCA | \n",
+ " 278 | \n",
+ " VEREADOR | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 27/08/2024 | \n",
+ " 19:30:34 | \n",
+ " 2024 | \n",
+ " 2 | \n",
+ " ELEIÇÃO ORDINÁRIA | \n",
+ " 1 | \n",
+ " 619 | \n",
+ " Eleições Municipais 2024 | \n",
+ " 06/10/2024 | \n",
+ " MUNICIPAL | \n",
+ " ... | \n",
+ " 6 | \n",
+ " ENSINO MÉDIO COMPLETO | \n",
+ " 3 | \n",
+ " CASADO(A) | \n",
+ " 1 | \n",
+ " BRANCA | \n",
+ " 243 | \n",
+ " TÉCNICO DE ENFERMAGEM E ASSEMELHADOS (EXCETO E... | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 27/08/2024 | \n",
+ " 19:30:34 | \n",
+ " 2024 | \n",
+ " 2 | \n",
+ " ELEIÇÃO ORDINÁRIA | \n",
+ " 1 | \n",
+ " 619 | \n",
+ " Eleições Municipais 2024 | \n",
+ " 06/10/2024 | \n",
+ " MUNICIPAL | \n",
+ " ... | \n",
+ " 6 | \n",
+ " ENSINO MÉDIO COMPLETO | \n",
+ " 1 | \n",
+ " SOLTEIRO(A) | \n",
+ " 1 | \n",
+ " BRANCA | \n",
+ " 999 | \n",
+ " OUTROS | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 27/08/2024 | \n",
+ " 19:30:34 | \n",
+ " 2024 | \n",
+ " 2 | \n",
+ " ELEIÇÃO ORDINÁRIA | \n",
+ " 1 | \n",
+ " 619 | \n",
+ " Eleições Municipais 2024 | \n",
+ " 06/10/2024 | \n",
+ " MUNICIPAL | \n",
+ " ... | \n",
+ " 6 | \n",
+ " ENSINO MÉDIO COMPLETO | \n",
+ " 3 | \n",
+ " CASADO(A) | \n",
+ " 1 | \n",
+ " BRANCA | \n",
+ " 999 | \n",
+ " OUTROS | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 27/08/2024 | \n",
+ " 19:30:34 | \n",
+ " 2024 | \n",
+ " 2 | \n",
+ " ELEIÇÃO ORDINÁRIA | \n",
+ " 1 | \n",
+ " 619 | \n",
+ " Eleições Municipais 2024 | \n",
+ " 06/10/2024 | \n",
+ " MUNICIPAL | \n",
+ " ... | \n",
+ " 6 | \n",
+ " ENSINO MÉDIO COMPLETO | \n",
+ " 3 | \n",
+ " CASADO(A) | \n",
+ " 1 | \n",
+ " BRANCA | \n",
+ " 257 | \n",
+ " EMPRESÁRIO | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
5 rows × 50 columns
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "text/plain": [
+ " DT_GERACAO HH_GERACAO ANO_ELEICAO CD_TIPO_ELEICAO NM_TIPO_ELEICAO \\\n",
+ "0 27/08/2024 19:30:34 2024 2 ELEIÇÃO ORDINÁRIA \n",
+ "1 27/08/2024 19:30:34 2024 2 ELEIÇÃO ORDINÁRIA \n",
+ "2 27/08/2024 19:30:34 2024 2 ELEIÇÃO ORDINÁRIA \n",
+ "3 27/08/2024 19:30:34 2024 2 ELEIÇÃO ORDINÁRIA \n",
+ "4 27/08/2024 19:30:34 2024 2 ELEIÇÃO ORDINÁRIA \n",
+ "\n",
+ " NR_TURNO CD_ELEICAO DS_ELEICAO DT_ELEICAO \\\n",
+ "0 1 619 Eleições Municipais 2024 06/10/2024 \n",
+ "1 1 619 Eleições Municipais 2024 06/10/2024 \n",
+ "2 1 619 Eleições Municipais 2024 06/10/2024 \n",
+ "3 1 619 Eleições Municipais 2024 06/10/2024 \n",
+ "4 1 619 Eleições Municipais 2024 06/10/2024 \n",
+ "\n",
+ " TP_ABRANGENCIA_ELEICAO ... CD_GRAU_INSTRUCAO DS_GRAU_INSTRUCAO \\\n",
+ "0 MUNICIPAL ... 6 ENSINO MÉDIO COMPLETO \n",
+ "1 MUNICIPAL ... 6 ENSINO MÉDIO COMPLETO \n",
+ "2 MUNICIPAL ... 6 ENSINO MÉDIO COMPLETO \n",
+ "3 MUNICIPAL ... 6 ENSINO MÉDIO COMPLETO \n",
+ "4 MUNICIPAL ... 6 ENSINO MÉDIO COMPLETO \n",
+ "\n",
+ " CD_ESTADO_CIVIL DS_ESTADO_CIVIL CD_COR_RACA DS_COR_RACA CD_OCUPACAO \\\n",
+ "0 3 CASADO(A) 1 BRANCA 278 \n",
+ "1 3 CASADO(A) 1 BRANCA 243 \n",
+ "2 1 SOLTEIRO(A) 1 BRANCA 999 \n",
+ "3 3 CASADO(A) 1 BRANCA 999 \n",
+ "4 3 CASADO(A) 1 BRANCA 257 \n",
+ "\n",
+ " DS_OCUPACAO CD_SIT_TOT_TURNO \\\n",
+ "0 VEREADOR -1 \n",
+ "1 TÉCNICO DE ENFERMAGEM E ASSEMELHADOS (EXCETO E... -1 \n",
+ "2 OUTROS -1 \n",
+ "3 OUTROS -1 \n",
+ "4 EMPRESÁRIO -1 \n",
+ "\n",
+ " DS_SIT_TOT_TURNO \n",
+ "0 #NULO# \n",
+ "1 #NULO# \n",
+ "2 #NULO# \n",
+ "3 #NULO# \n",
+ "4 #NULO# \n",
+ "\n",
+ "[5 rows x 50 columns]"
+ ]
+ },
+ "execution_count": 43,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#verificar as 5 primeiras linhas da base de dados candidato\n",
+ "candidato.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 0
+ },
+ "id": "UAXE-Xt9Sis_",
+ "outputId": "d96ee8e8-128e-432e-f8ca-c052e8984ef2"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " DT_GERACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " HH_GERACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " ANO_ELEICAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_TIPO_ELEICAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NM_TIPO_ELEICAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NR_TURNO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_ELEICAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_ELEICAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DT_ELEICAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " TP_ABRANGENCIA_ELEICAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " SG_UF | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " SG_UE | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NM_UE | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_CARGO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_CARGO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " SQ_CANDIDATO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NR_CANDIDATO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NM_CANDIDATO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NM_URNA_CANDIDATO | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " NM_SOCIAL_CANDIDATO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NR_CPF_CANDIDATO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_EMAIL | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_SITUACAO_CANDIDATURA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_SITUACAO_CANDIDATURA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " TP_AGREMIACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NR_PARTIDO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " SG_PARTIDO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NM_PARTIDO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NR_FEDERACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NM_FEDERACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " SG_FEDERACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_COMPOSICAO_FEDERACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " SQ_COLIGACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NM_COLIGACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_COMPOSICAO_COLIGACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " SG_UF_NASCIMENTO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DT_NASCIMENTO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NR_TITULO_ELEITORAL_CANDIDATO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_GENERO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_GENERO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_GRAU_INSTRUCAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_GRAU_INSTRUCAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_ESTADO_CIVIL | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_ESTADO_CIVIL | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_COR_RACA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_COR_RACA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_OCUPACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_OCUPACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_SIT_TOT_TURNO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_SIT_TOT_TURNO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ "DT_GERACAO 0\n",
+ "HH_GERACAO 0\n",
+ "ANO_ELEICAO 0\n",
+ "CD_TIPO_ELEICAO 0\n",
+ "NM_TIPO_ELEICAO 0\n",
+ "NR_TURNO 0\n",
+ "CD_ELEICAO 0\n",
+ "DS_ELEICAO 0\n",
+ "DT_ELEICAO 0\n",
+ "TP_ABRANGENCIA_ELEICAO 0\n",
+ "SG_UF 0\n",
+ "SG_UE 0\n",
+ "NM_UE 0\n",
+ "CD_CARGO 0\n",
+ "DS_CARGO 0\n",
+ "SQ_CANDIDATO 0\n",
+ "NR_CANDIDATO 0\n",
+ "NM_CANDIDATO 0\n",
+ "NM_URNA_CANDIDATO 1\n",
+ "NM_SOCIAL_CANDIDATO 0\n",
+ "NR_CPF_CANDIDATO 0\n",
+ "DS_EMAIL 0\n",
+ "CD_SITUACAO_CANDIDATURA 0\n",
+ "DS_SITUACAO_CANDIDATURA 0\n",
+ "TP_AGREMIACAO 0\n",
+ "NR_PARTIDO 0\n",
+ "SG_PARTIDO 0\n",
+ "NM_PARTIDO 0\n",
+ "NR_FEDERACAO 0\n",
+ "NM_FEDERACAO 0\n",
+ "SG_FEDERACAO 0\n",
+ "DS_COMPOSICAO_FEDERACAO 0\n",
+ "SQ_COLIGACAO 0\n",
+ "NM_COLIGACAO 0\n",
+ "DS_COMPOSICAO_COLIGACAO 0\n",
+ "SG_UF_NASCIMENTO 0\n",
+ "DT_NASCIMENTO 0\n",
+ "NR_TITULO_ELEITORAL_CANDIDATO 0\n",
+ "CD_GENERO 0\n",
+ "DS_GENERO 0\n",
+ "CD_GRAU_INSTRUCAO 0\n",
+ "DS_GRAU_INSTRUCAO 0\n",
+ "CD_ESTADO_CIVIL 0\n",
+ "DS_ESTADO_CIVIL 0\n",
+ "CD_COR_RACA 0\n",
+ "DS_COR_RACA 0\n",
+ "CD_OCUPACAO 0\n",
+ "DS_OCUPACAO 0\n",
+ "CD_SIT_TOT_TURNO 0\n",
+ "DS_SIT_TOT_TURNO 0\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 44,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#Verificar nulos na base candidato\n",
+ "candidato.isnull().sum()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 45,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "QMJnZkae70UF",
+ "outputId": "a57f812e-c4be-42bd-8be2-a2a3725953e6"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(77591, 50)"
+ ]
+ },
+ "execution_count": 45,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#Quantidade de linhas\n",
+ "candidato.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "vlq6KhZ99NY-",
+ "outputId": "a79d77e1-d2da-46ce-d6fc-156144d2dc2e"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "RangeIndex: 77591 entries, 0 to 77590\n",
+ "Data columns (total 50 columns):\n",
+ " # Column Non-Null Count Dtype \n",
+ "--- ------ -------------- ----- \n",
+ " 0 DT_GERACAO 77591 non-null object\n",
+ " 1 HH_GERACAO 77591 non-null object\n",
+ " 2 ANO_ELEICAO 77591 non-null int64 \n",
+ " 3 CD_TIPO_ELEICAO 77591 non-null int64 \n",
+ " 4 NM_TIPO_ELEICAO 77591 non-null object\n",
+ " 5 NR_TURNO 77591 non-null int64 \n",
+ " 6 CD_ELEICAO 77591 non-null int64 \n",
+ " 7 DS_ELEICAO 77591 non-null object\n",
+ " 8 DT_ELEICAO 77591 non-null object\n",
+ " 9 TP_ABRANGENCIA_ELEICAO 77591 non-null object\n",
+ " 10 SG_UF 77591 non-null object\n",
+ " 11 SG_UE 77591 non-null int64 \n",
+ " 12 NM_UE 77591 non-null object\n",
+ " 13 CD_CARGO 77591 non-null int64 \n",
+ " 14 DS_CARGO 77591 non-null object\n",
+ " 15 SQ_CANDIDATO 77591 non-null int64 \n",
+ " 16 NR_CANDIDATO 77591 non-null int64 \n",
+ " 17 NM_CANDIDATO 77591 non-null object\n",
+ " 18 NM_URNA_CANDIDATO 77590 non-null object\n",
+ " 19 NM_SOCIAL_CANDIDATO 77591 non-null object\n",
+ " 20 NR_CPF_CANDIDATO 77591 non-null int64 \n",
+ " 21 DS_EMAIL 77591 non-null object\n",
+ " 22 CD_SITUACAO_CANDIDATURA 77591 non-null int64 \n",
+ " 23 DS_SITUACAO_CANDIDATURA 77591 non-null object\n",
+ " 24 TP_AGREMIACAO 77591 non-null object\n",
+ " 25 NR_PARTIDO 77591 non-null int64 \n",
+ " 26 SG_PARTIDO 77591 non-null object\n",
+ " 27 NM_PARTIDO 77591 non-null object\n",
+ " 28 NR_FEDERACAO 77591 non-null int64 \n",
+ " 29 NM_FEDERACAO 77591 non-null object\n",
+ " 30 SG_FEDERACAO 77591 non-null object\n",
+ " 31 DS_COMPOSICAO_FEDERACAO 77591 non-null object\n",
+ " 32 SQ_COLIGACAO 77591 non-null int64 \n",
+ " 33 NM_COLIGACAO 77591 non-null object\n",
+ " 34 DS_COMPOSICAO_COLIGACAO 77591 non-null object\n",
+ " 35 SG_UF_NASCIMENTO 77591 non-null object\n",
+ " 36 DT_NASCIMENTO 77591 non-null object\n",
+ " 37 NR_TITULO_ELEITORAL_CANDIDATO 77591 non-null int64 \n",
+ " 38 CD_GENERO 77591 non-null int64 \n",
+ " 39 DS_GENERO 77591 non-null object\n",
+ " 40 CD_GRAU_INSTRUCAO 77591 non-null int64 \n",
+ " 41 DS_GRAU_INSTRUCAO 77591 non-null object\n",
+ " 42 CD_ESTADO_CIVIL 77591 non-null int64 \n",
+ " 43 DS_ESTADO_CIVIL 77591 non-null object\n",
+ " 44 CD_COR_RACA 77591 non-null int64 \n",
+ " 45 DS_COR_RACA 77591 non-null object\n",
+ " 46 CD_OCUPACAO 77591 non-null int64 \n",
+ " 47 DS_OCUPACAO 77591 non-null object\n",
+ " 48 CD_SIT_TOT_TURNO 77591 non-null int64 \n",
+ " 49 DS_SIT_TOT_TURNO 77591 non-null object\n",
+ "dtypes: int64(20), object(30)\n",
+ "memory usage: 29.6+ MB\n"
+ ]
+ }
+ ],
+ "source": [
+ "candidato.info()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 47,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "49E_2zW1Ogml",
+ "outputId": "41c46093-9170-477b-eb34-7e137896d92c"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " SG_UF SG_UE NM_UE CD_CARGO DS_CARGO SQ_CANDIDATO \\\n",
+ "0 SP 72230 VALENTIM GENTIL 13 VEREADOR 250002276626 \n",
+ "1 SP 64319 GABRIEL MONTEIRO 13 VEREADOR 250002275730 \n",
+ "2 SP 64319 GABRIEL MONTEIRO 13 VEREADOR 250002277051 \n",
+ "3 SP 72273 VALPARAÍSO 13 VEREADOR 250002279457 \n",
+ "4 SP 63118 CARAGUATATUBA 13 VEREADOR 250002275840 \n",
+ "... ... ... ... ... ... ... \n",
+ "77586 SP 62111 BARRINHA 13 VEREADOR 250001920422 \n",
+ "77587 SP 71498 SUMARÉ 13 VEREADOR 250001942575 \n",
+ "77588 SP 64874 IBATÉ 13 VEREADOR 250001946083 \n",
+ "77589 SP 71153 SÃO SEBASTIÃO 13 VEREADOR 250002341798 \n",
+ "77590 SP 70955 SÃO JOSÉ DO RIO PARDO 13 VEREADOR 250002346612 \n",
+ "\n",
+ " NR_CANDIDATO NM_CANDIDATO NR_PARTIDO \\\n",
+ "0 43777 IZAQUIEL ALVES DA SILVA 43 \n",
+ "1 55555 FERNANDA DONADONI BELORTI 55 \n",
+ "2 10100 JAQUELINE FIM DOS SANTOS 10 \n",
+ "3 45645 HELZIO RAMOS BORGES 45 \n",
+ "4 33789 LUIZ CESAR OLIVEIRA PEREIRA 33 \n",
+ "... ... ... ... \n",
+ "77586 11234 APARECIDA DO PERPETUO SOCORRO LEMOS OLIVEIRA 11 \n",
+ "77587 22224 RANGEL PESTANA COSTA 22 \n",
+ "77588 55555 IVANILDO DE OLIVEIRA LINS 55 \n",
+ "77589 36000 IVAN CAMARGO DOS SANTOS 36 \n",
+ "77590 11456 GABRIEL NAVEGA RIBEIRO DA SILVA MORELLI 11 \n",
+ "\n",
+ " SG_PARTIDO ... CD_GENERO DS_GENERO CD_GRAU_INSTRUCAO \\\n",
+ "0 PV ... 2 MASCULINO 6 \n",
+ "1 PSD ... 4 FEMININO 6 \n",
+ "2 REPUBLICANOS ... 4 FEMININO 6 \n",
+ "3 PSDB ... 2 MASCULINO 6 \n",
+ "4 MOBILIZA ... 2 MASCULINO 6 \n",
+ "... ... ... ... ... ... \n",
+ "77586 PP ... 4 FEMININO 7 \n",
+ "77587 PL ... 2 MASCULINO 4 \n",
+ "77588 PSD ... 2 MASCULINO 6 \n",
+ "77589 AGIR ... 2 MASCULINO 6 \n",
+ "77590 PP ... 2 MASCULINO 6 \n",
+ "\n",
+ " DS_GRAU_INSTRUCAO CD_ESTADO_CIVIL DS_ESTADO_CIVIL \\\n",
+ "0 ENSINO MÉDIO COMPLETO 3 CASADO(A) \n",
+ "1 ENSINO MÉDIO COMPLETO 3 CASADO(A) \n",
+ "2 ENSINO MÉDIO COMPLETO 1 SOLTEIRO(A) \n",
+ "3 ENSINO MÉDIO COMPLETO 3 CASADO(A) \n",
+ "4 ENSINO MÉDIO COMPLETO 3 CASADO(A) \n",
+ "... ... ... ... \n",
+ "77586 SUPERIOR INCOMPLETO 3 CASADO(A) \n",
+ "77587 ENSINO FUNDAMENTAL COMPLETO 3 CASADO(A) \n",
+ "77588 ENSINO MÉDIO COMPLETO 3 CASADO(A) \n",
+ "77589 ENSINO MÉDIO COMPLETO 3 CASADO(A) \n",
+ "77590 ENSINO MÉDIO COMPLETO 3 CASADO(A) \n",
+ "\n",
+ " CD_COR_RACA DS_COR_RACA CD_OCUPACAO \\\n",
+ "0 1 BRANCA 278 \n",
+ "1 1 BRANCA 243 \n",
+ "2 1 BRANCA 999 \n",
+ "3 1 BRANCA 999 \n",
+ "4 1 BRANCA 257 \n",
+ "... ... ... ... \n",
+ "77586 3 PARDA 598 \n",
+ "77587 1 BRANCA 237 \n",
+ "77588 2 PRETA 709 \n",
+ "77589 1 BRANCA 999 \n",
+ "77590 1 BRANCA 257 \n",
+ "\n",
+ " DS_OCUPACAO \n",
+ "0 VEREADOR \n",
+ "1 TÉCNICO DE ENFERMAGEM E ASSEMELHADOS (EXCETO E... \n",
+ "2 OUTROS \n",
+ "3 OUTROS \n",
+ "4 EMPRESÁRIO \n",
+ "... ... \n",
+ "77586 EMPREGADO DOMÉSTICO \n",
+ "77587 REPRESENTANTE COMERCIAL \n",
+ "77588 TRABALHADOR DE CONSTRUÇÃO CIVIL \n",
+ "77589 OUTROS \n",
+ "77590 EMPRESÁRIO \n",
+ "\n",
+ "[77591 rows x 23 columns]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Lista das colunas que você deseja selecionar\n",
+ "colunas_selecionadas = [\n",
+ " 'SG_UF', 'SG_UE', 'NM_UE', 'CD_CARGO', 'DS_CARGO', 'SQ_CANDIDATO',\n",
+ " 'NR_CANDIDATO', 'NM_CANDIDATO', 'NR_PARTIDO', 'SG_PARTIDO', 'NM_PARTIDO', 'SG_UF_NASCIMENTO',\n",
+ " 'DT_NASCIMENTO', 'CD_GENERO', 'DS_GENERO', 'CD_GRAU_INSTRUCAO',\n",
+ " 'DS_GRAU_INSTRUCAO', 'CD_ESTADO_CIVIL', 'DS_ESTADO_CIVIL',\n",
+ " 'CD_COR_RACA', 'DS_COR_RACA', 'CD_OCUPACAO', 'DS_OCUPACAO'\n",
+ "]\n",
+ "\n",
+ "# Selecionando as colunas do DataFrame 'candidatos'\n",
+ "candidatos = candidato[colunas_selecionadas]\n",
+ "\n",
+ "# Exibir o DataFrame selecionado\n",
+ "print(candidatos)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 48,
+ "metadata": {
+ "id": "pcwWBGs4QwpJ"
+ },
+ "outputs": [],
+ "source": [
+ "#Salvar copia da base\n",
+ "candidato_backup = candidatos.copy()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "jpM78vGp9Gvt"
+ },
+ "source": [
+ "-Base Complemento"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 49,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "4AH4gu-Mm4DF",
+ "outputId": "16200183-2980-4c2f-9ee5-d689372cc4ff"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index(['DT_GERACAO', 'HH_GERACAO', 'ANO_ELEICAO', 'CD_ELEICAO', 'SQ_CANDIDATO',\n",
+ " 'CD_DETALHE_SITUACAO_CAND', 'DS_DETALHE_SITUACAO_CAND',\n",
+ " 'CD_NACIONALIDADE', 'DS_NACIONALIDADE', 'CD_MUNICIPIO_NASCIMENTO',\n",
+ " 'NM_MUNICIPIO_NASCIMENTO', 'NR_IDADE_DATA_POSSE', 'ST_QUILOMBOLA',\n",
+ " 'CD_ETNIA_INDIGENA', 'DS_ETNIA_INDIGENA', 'VR_DESPESA_MAX_CAMPANHA',\n",
+ " 'ST_REELEICAO', 'ST_DECLARAR_BENS', 'NR_PROTOCOLO_CANDIDATURA',\n",
+ " 'NR_PROCESSO', 'CD_SITUACAO_CANDIDATO_PLEITO',\n",
+ " 'DS_SITUACAO_CANDIDATO_PLEITO', 'CD_SITUACAO_CANDIDATO_URNA',\n",
+ " 'DS_SITUACAO_CANDIDATO_URNA', 'ST_CANDIDATO_INSERIDO_URNA',\n",
+ " 'NM_TIPO_DESTINACAO_VOTOS', 'CD_SITUACAO_CANDIDATO_TOT',\n",
+ " 'DS_SITUACAO_CANDIDATO_TOT', 'ST_PREST_CONTAS', 'ST_SUBSTITUIDO',\n",
+ " 'SQ_SUBSTITUIDO', 'SQ_ORDEM_SUPLENCIA', 'DT_ACEITE_CANDIDATURA',\n",
+ " 'CD_SITUACAO_JULGAMENTO', 'DS_SITUACAO_JULGAMENTO',\n",
+ " 'CD_SITUACAO_JULGAMENTO_PLEITO', 'DS_SITUACAO_JULGAMENTO_PLEITO',\n",
+ " 'CD_SITUACAO_JULGAMENTO_URNA', 'DS_SITUACAO_JULGAMENTO_URNA',\n",
+ " 'CD_SITUACAO_CASSACAO', 'DS_SITUACAO_CASSACAO',\n",
+ " 'CD_SITUACAO_CASSACAO_MIDIA', 'DS_SITUACAO_CASSACAO_MIDIA',\n",
+ " 'CD_SITUACAO_DIPLOMA', 'DS_SITUACAO_DIPLOMA'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 49,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Verificar as colunas da base de dados\n",
+ "complemento.columns"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 50,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 0
+ },
+ "id": "yvXmP7GsTsmA",
+ "outputId": "fb167ae0-8170-4ac0-a7ec-d58e0aaa84a0"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe",
+ "variable_name": "complemento"
+ },
+ "text/html": [
+ "\n",
+ " \n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " DT_GERACAO | \n",
+ " HH_GERACAO | \n",
+ " ANO_ELEICAO | \n",
+ " CD_ELEICAO | \n",
+ " SQ_CANDIDATO | \n",
+ " CD_DETALHE_SITUACAO_CAND | \n",
+ " DS_DETALHE_SITUACAO_CAND | \n",
+ " CD_NACIONALIDADE | \n",
+ " DS_NACIONALIDADE | \n",
+ " CD_MUNICIPIO_NASCIMENTO | \n",
+ " ... | \n",
+ " CD_SITUACAO_JULGAMENTO_PLEITO | \n",
+ " DS_SITUACAO_JULGAMENTO_PLEITO | \n",
+ " CD_SITUACAO_JULGAMENTO_URNA | \n",
+ " DS_SITUACAO_JULGAMENTO_URNA | \n",
+ " CD_SITUACAO_CASSACAO | \n",
+ " DS_SITUACAO_CASSACAO | \n",
+ " CD_SITUACAO_CASSACAO_MIDIA | \n",
+ " DS_SITUACAO_CASSACAO_MIDIA | \n",
+ " CD_SITUACAO_DIPLOMA | \n",
+ " DS_SITUACAO_DIPLOMA | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 27/08/2024 | \n",
+ " 19:30:34 | \n",
+ " 2024 | \n",
+ " 619 | \n",
+ " 250001971482 | \n",
+ " -3 | \n",
+ " #NE | \n",
+ " 1 | \n",
+ " BRASILEIRA NATA | \n",
+ " -3 | \n",
+ " ... | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 27/08/2024 | \n",
+ " 19:30:34 | \n",
+ " 2024 | \n",
+ " 619 | \n",
+ " 250001899774 | \n",
+ " -3 | \n",
+ " #NE | \n",
+ " 1 | \n",
+ " BRASILEIRA NATA | \n",
+ " -3 | \n",
+ " ... | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 27/08/2024 | \n",
+ " 19:30:34 | \n",
+ " 2024 | \n",
+ " 619 | \n",
+ " 250002147813 | \n",
+ " -3 | \n",
+ " #NE | \n",
+ " 1 | \n",
+ " BRASILEIRA NATA | \n",
+ " -3 | \n",
+ " ... | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 27/08/2024 | \n",
+ " 19:30:34 | \n",
+ " 2024 | \n",
+ " 619 | \n",
+ " 250001968946 | \n",
+ " -3 | \n",
+ " #NE | \n",
+ " 1 | \n",
+ " BRASILEIRA NATA | \n",
+ " -3 | \n",
+ " ... | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 27/08/2024 | \n",
+ " 19:30:34 | \n",
+ " 2024 | \n",
+ " 619 | \n",
+ " 250001951792 | \n",
+ " -3 | \n",
+ " #NE | \n",
+ " 1 | \n",
+ " BRASILEIRA NATA | \n",
+ " -3 | \n",
+ " ... | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ " -1 | \n",
+ " #NULO# | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
5 rows × 45 columns
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ],
+ "text/plain": [
+ " DT_GERACAO HH_GERACAO ANO_ELEICAO CD_ELEICAO SQ_CANDIDATO \\\n",
+ "0 27/08/2024 19:30:34 2024 619 250001971482 \n",
+ "1 27/08/2024 19:30:34 2024 619 250001899774 \n",
+ "2 27/08/2024 19:30:34 2024 619 250002147813 \n",
+ "3 27/08/2024 19:30:34 2024 619 250001968946 \n",
+ "4 27/08/2024 19:30:34 2024 619 250001951792 \n",
+ "\n",
+ " CD_DETALHE_SITUACAO_CAND DS_DETALHE_SITUACAO_CAND CD_NACIONALIDADE \\\n",
+ "0 -3 #NE 1 \n",
+ "1 -3 #NE 1 \n",
+ "2 -3 #NE 1 \n",
+ "3 -3 #NE 1 \n",
+ "4 -3 #NE 1 \n",
+ "\n",
+ " DS_NACIONALIDADE CD_MUNICIPIO_NASCIMENTO ... \\\n",
+ "0 BRASILEIRA NATA -3 ... \n",
+ "1 BRASILEIRA NATA -3 ... \n",
+ "2 BRASILEIRA NATA -3 ... \n",
+ "3 BRASILEIRA NATA -3 ... \n",
+ "4 BRASILEIRA NATA -3 ... \n",
+ "\n",
+ " CD_SITUACAO_JULGAMENTO_PLEITO DS_SITUACAO_JULGAMENTO_PLEITO \\\n",
+ "0 -1 #NULO# \n",
+ "1 -1 #NULO# \n",
+ "2 -1 #NULO# \n",
+ "3 -1 #NULO# \n",
+ "4 -1 #NULO# \n",
+ "\n",
+ " CD_SITUACAO_JULGAMENTO_URNA DS_SITUACAO_JULGAMENTO_URNA \\\n",
+ "0 -1 #NULO# \n",
+ "1 -1 #NULO# \n",
+ "2 -1 #NULO# \n",
+ "3 -1 #NULO# \n",
+ "4 -1 #NULO# \n",
+ "\n",
+ " CD_SITUACAO_CASSACAO DS_SITUACAO_CASSACAO CD_SITUACAO_CASSACAO_MIDIA \\\n",
+ "0 -1 #NULO# -1 \n",
+ "1 -1 #NULO# -1 \n",
+ "2 -1 #NULO# -1 \n",
+ "3 -1 #NULO# -1 \n",
+ "4 -1 #NULO# -1 \n",
+ "\n",
+ " DS_SITUACAO_CASSACAO_MIDIA CD_SITUACAO_DIPLOMA DS_SITUACAO_DIPLOMA \n",
+ "0 #NULO# -1 #NULO# \n",
+ "1 #NULO# -1 #NULO# \n",
+ "2 #NULO# -1 #NULO# \n",
+ "3 #NULO# -1 #NULO# \n",
+ "4 #NULO# -1 #NULO# \n",
+ "\n",
+ "[5 rows x 45 columns]"
+ ]
+ },
+ "execution_count": 50,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#verificar as 5 primeiras linhas da base de dados complemento\n",
+ "complemento.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 51,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 0
+ },
+ "id": "qXN5nF8f5v28",
+ "outputId": "27251c02-53c0-4495-92ff-320aedbc4195"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " DT_GERACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " HH_GERACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " ANO_ELEICAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_ELEICAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " SQ_CANDIDATO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_DETALHE_SITUACAO_CAND | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_DETALHE_SITUACAO_CAND | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_NACIONALIDADE | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_NACIONALIDADE | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_MUNICIPIO_NASCIMENTO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NM_MUNICIPIO_NASCIMENTO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NR_IDADE_DATA_POSSE | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " ST_QUILOMBOLA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_ETNIA_INDIGENA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_ETNIA_INDIGENA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " VR_DESPESA_MAX_CAMPANHA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " ST_REELEICAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " ST_DECLARAR_BENS | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NR_PROTOCOLO_CANDIDATURA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NR_PROCESSO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_SITUACAO_CANDIDATO_PLEITO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_SITUACAO_CANDIDATO_PLEITO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_SITUACAO_CANDIDATO_URNA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_SITUACAO_CANDIDATO_URNA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " ST_CANDIDATO_INSERIDO_URNA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NM_TIPO_DESTINACAO_VOTOS | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_SITUACAO_CANDIDATO_TOT | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_SITUACAO_CANDIDATO_TOT | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " ST_PREST_CONTAS | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " ST_SUBSTITUIDO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " SQ_SUBSTITUIDO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " SQ_ORDEM_SUPLENCIA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DT_ACEITE_CANDIDATURA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_SITUACAO_JULGAMENTO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_SITUACAO_JULGAMENTO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_SITUACAO_JULGAMENTO_PLEITO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_SITUACAO_JULGAMENTO_PLEITO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_SITUACAO_JULGAMENTO_URNA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_SITUACAO_JULGAMENTO_URNA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_SITUACAO_CASSACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_SITUACAO_CASSACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_SITUACAO_CASSACAO_MIDIA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_SITUACAO_CASSACAO_MIDIA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_SITUACAO_DIPLOMA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_SITUACAO_DIPLOMA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ "DT_GERACAO 0\n",
+ "HH_GERACAO 0\n",
+ "ANO_ELEICAO 0\n",
+ "CD_ELEICAO 0\n",
+ "SQ_CANDIDATO 0\n",
+ "CD_DETALHE_SITUACAO_CAND 0\n",
+ "DS_DETALHE_SITUACAO_CAND 0\n",
+ "CD_NACIONALIDADE 0\n",
+ "DS_NACIONALIDADE 0\n",
+ "CD_MUNICIPIO_NASCIMENTO 0\n",
+ "NM_MUNICIPIO_NASCIMENTO 0\n",
+ "NR_IDADE_DATA_POSSE 0\n",
+ "ST_QUILOMBOLA 0\n",
+ "CD_ETNIA_INDIGENA 0\n",
+ "DS_ETNIA_INDIGENA 0\n",
+ "VR_DESPESA_MAX_CAMPANHA 0\n",
+ "ST_REELEICAO 0\n",
+ "ST_DECLARAR_BENS 0\n",
+ "NR_PROTOCOLO_CANDIDATURA 0\n",
+ "NR_PROCESSO 0\n",
+ "CD_SITUACAO_CANDIDATO_PLEITO 0\n",
+ "DS_SITUACAO_CANDIDATO_PLEITO 0\n",
+ "CD_SITUACAO_CANDIDATO_URNA 0\n",
+ "DS_SITUACAO_CANDIDATO_URNA 0\n",
+ "ST_CANDIDATO_INSERIDO_URNA 0\n",
+ "NM_TIPO_DESTINACAO_VOTOS 0\n",
+ "CD_SITUACAO_CANDIDATO_TOT 0\n",
+ "DS_SITUACAO_CANDIDATO_TOT 0\n",
+ "ST_PREST_CONTAS 0\n",
+ "ST_SUBSTITUIDO 0\n",
+ "SQ_SUBSTITUIDO 0\n",
+ "SQ_ORDEM_SUPLENCIA 0\n",
+ "DT_ACEITE_CANDIDATURA 0\n",
+ "CD_SITUACAO_JULGAMENTO 0\n",
+ "DS_SITUACAO_JULGAMENTO 0\n",
+ "CD_SITUACAO_JULGAMENTO_PLEITO 0\n",
+ "DS_SITUACAO_JULGAMENTO_PLEITO 0\n",
+ "CD_SITUACAO_JULGAMENTO_URNA 0\n",
+ "DS_SITUACAO_JULGAMENTO_URNA 0\n",
+ "CD_SITUACAO_CASSACAO 0\n",
+ "DS_SITUACAO_CASSACAO 0\n",
+ "CD_SITUACAO_CASSACAO_MIDIA 0\n",
+ "DS_SITUACAO_CASSACAO_MIDIA 0\n",
+ "CD_SITUACAO_DIPLOMA 0\n",
+ "DS_SITUACAO_DIPLOMA 0\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 51,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#Verificar nulos na base de dados complemento\n",
+ "complemento.isnull().sum()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 52,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "BmIq9Irv76SO",
+ "outputId": "5c48468a-743e-4e09-d7a9-2af92b9e0adb"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "(77591, 45)"
+ ]
+ },
+ "execution_count": 52,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#Quantidade de linhas\n",
+ "complemento.shape"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 53,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "eGWsgeyxPr5W",
+ "outputId": "6d899258-09c2-4799-df63-5ad4607d37ee"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " SQ_CANDIDATO DS_NACIONALIDADE NM_MUNICIPIO_NASCIMENTO \\\n",
+ "0 250001971482 BRASILEIRA NATA SÃO PAULO \n",
+ "1 250001899774 BRASILEIRA NATA SÃO JOSÉ DO RIO PRETO \n",
+ "2 250002147813 BRASILEIRA NATA PARIQUERA-AÇU \n",
+ "3 250001968946 BRASILEIRA NATA COSMÓPOLIS \n",
+ "4 250001951792 BRASILEIRA NATA CAFELÂNDIA \n",
+ "... ... ... ... \n",
+ "77586 250002166022 BRASILEIRA NATA CAMPINAS \n",
+ "77587 250002119312 BRASILEIRA NATA SOROCABA \n",
+ "77588 250002219506 BRASILEIRA NATA PORECATU \n",
+ "77589 250002347047 BRASILEIRA NATA SÃO JOSÉ DO RIO PARDO \n",
+ "77590 250002136036 BRASILEIRA NATA SANTO ANDRÉ \n",
+ "\n",
+ " NR_IDADE_DATA_POSSE ST_QUILOMBOLA VR_DESPESA_MAX_CAMPANHA \\\n",
+ "0 53 N 129911.43 \n",
+ "1 41 N 68181.85 \n",
+ "2 53 N 61190.60 \n",
+ "3 39 N 109217.93 \n",
+ "4 47 N 15985.08 \n",
+ "... ... ... ... \n",
+ "77586 60 N 15985.08 \n",
+ "77587 58 N 206163.89 \n",
+ "77588 62 N 15985.08 \n",
+ "77589 56 N 15985.08 \n",
+ "77590 53 N -1.00 \n",
+ "\n",
+ " ST_REELEICAO ST_DECLARAR_BENS \n",
+ "0 N S \n",
+ "1 N S \n",
+ "2 N S \n",
+ "3 N S \n",
+ "4 N S \n",
+ "... ... ... \n",
+ "77586 N N \n",
+ "77587 N N \n",
+ "77588 N S \n",
+ "77589 N S \n",
+ "77590 N S \n",
+ "\n",
+ "[77591 rows x 8 columns]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Lista das colunas que você deseja selecionar\n",
+ "colunas_selecionadas = [\n",
+ "'SQ_CANDIDATO', 'DS_NACIONALIDADE', 'NM_MUNICIPIO_NASCIMENTO',\n",
+ "'NR_IDADE_DATA_POSSE', 'ST_QUILOMBOLA', 'VR_DESPESA_MAX_CAMPANHA', 'ST_REELEICAO', 'ST_DECLARAR_BENS'\n",
+ "]\n",
+ "\n",
+ "# Selecionando as colunas do DataFrame 'candidatos'\n",
+ "complementos = complemento[colunas_selecionadas]\n",
+ "\n",
+ "# Exibir o DataFrame selecionado\n",
+ "print(complementos)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 54,
+ "metadata": {
+ "id": "9C_Uc9X3Q_vO"
+ },
+ "outputs": [],
+ "source": [
+ "#Salvar copia da base\n",
+ "complemento_backup = complementos.copy()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "z-vOomdqU6x7"
+ },
+ "source": [
+ "- **JOIN** para unir as tabelas"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 55,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "F3MJ4weQNjyv",
+ "outputId": "b8d1bd8d-31e7-469d-e63e-7a3745ff475f"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " SG_UF SG_UE NM_UE CD_CARGO DS_CARGO \\\n",
+ "0 SP 72230 VALENTIM GENTIL 13 VEREADOR \n",
+ "1 SP 64319 GABRIEL MONTEIRO 13 VEREADOR \n",
+ "2 SP 64319 GABRIEL MONTEIRO 13 VEREADOR \n",
+ "3 SP 72273 VALPARAÍSO 13 VEREADOR \n",
+ "4 SP 63118 CARAGUATATUBA 13 VEREADOR \n",
+ "... ... ... ... ... ... \n",
+ "77586 SP 62111 BARRINHA 13 VEREADOR \n",
+ "77587 SP 71498 SUMARÉ 13 VEREADOR \n",
+ "77588 SP 64874 IBATÉ 13 VEREADOR \n",
+ "77589 SP 71153 SÃO SEBASTIÃO 13 VEREADOR \n",
+ "77590 SP 70955 SÃO JOSÉ DO RIO PARDO 13 VEREADOR \n",
+ "\n",
+ " SQ_CANDIDATO_Candidato NR_CANDIDATO \\\n",
+ "0 250002276626 43777 \n",
+ "1 250002275730 55555 \n",
+ "2 250002277051 10100 \n",
+ "3 250002279457 45645 \n",
+ "4 250002275840 33789 \n",
+ "... ... ... \n",
+ "77586 250001920422 11234 \n",
+ "77587 250001942575 22224 \n",
+ "77588 250001946083 55555 \n",
+ "77589 250002341798 36000 \n",
+ "77590 250002346612 11456 \n",
+ "\n",
+ " NM_CANDIDATO NR_PARTIDO SG_PARTIDO \\\n",
+ "0 IZAQUIEL ALVES DA SILVA 43 PV \n",
+ "1 FERNANDA DONADONI BELORTI 55 PSD \n",
+ "2 JAQUELINE FIM DOS SANTOS 10 REPUBLICANOS \n",
+ "3 HELZIO RAMOS BORGES 45 PSDB \n",
+ "4 LUIZ CESAR OLIVEIRA PEREIRA 33 MOBILIZA \n",
+ "... ... ... ... \n",
+ "77586 APARECIDA DO PERPETUO SOCORRO LEMOS OLIVEIRA 11 PP \n",
+ "77587 RANGEL PESTANA COSTA 22 PL \n",
+ "77588 IVANILDO DE OLIVEIRA LINS 55 PSD \n",
+ "77589 IVAN CAMARGO DOS SANTOS 36 AGIR \n",
+ "77590 GABRIEL NAVEGA RIBEIRO DA SILVA MORELLI 11 PP \n",
+ "\n",
+ " ... CD_OCUPACAO DS_OCUPACAO \\\n",
+ "0 ... 278 VEREADOR \n",
+ "1 ... 243 TÉCNICO DE ENFERMAGEM E ASSEMELHADOS (EXCETO E... \n",
+ "2 ... 999 OUTROS \n",
+ "3 ... 999 OUTROS \n",
+ "4 ... 257 EMPRESÁRIO \n",
+ "... ... ... ... \n",
+ "77586 ... 598 EMPREGADO DOMÉSTICO \n",
+ "77587 ... 237 REPRESENTANTE COMERCIAL \n",
+ "77588 ... 709 TRABALHADOR DE CONSTRUÇÃO CIVIL \n",
+ "77589 ... 999 OUTROS \n",
+ "77590 ... 257 EMPRESÁRIO \n",
+ "\n",
+ " SQ_CANDIDATO_Complemento DS_NACIONALIDADE NM_MUNICIPIO_NASCIMENTO \\\n",
+ "0 250002276626 BRASILEIRA NATA PARNARAMA \n",
+ "1 250002275730 BRASILEIRA NATA GABRIEL MONTEIRO \n",
+ "2 250002277051 BRASILEIRA NATA IVINHEMA \n",
+ "3 250002279457 BRASILEIRA NATA VALPARAÍSO \n",
+ "4 250002275840 BRASILEIRA NATA SANTOS \n",
+ "... ... ... ... \n",
+ "77586 250001920422 BRASILEIRA NATA MINAS NOVAS \n",
+ "77587 250001942575 BRASILEIRA NATA SÃO PAULO \n",
+ "77588 250001946083 BRASILEIRA NATA PINTADAS \n",
+ "77589 250002341798 BRASILEIRA NATA SANTOS \n",
+ "77590 250002346612 BRASILEIRA NATA SÃO JOSÉ DO RIO PARDO \n",
+ "\n",
+ " NR_IDADE_DATA_POSSE ST_QUILOMBOLA VR_DESPESA_MAX_CAMPANHA \\\n",
+ "0 60 N 15985.08 \n",
+ "1 44 N 15985.08 \n",
+ "2 30 N 15985.08 \n",
+ "3 59 N 21953.70 \n",
+ "4 62 N 137082.98 \n",
+ "... ... ... ... \n",
+ "77586 57 N 46292.53 \n",
+ "77587 67 N 116449.39 \n",
+ "77588 50 N 15985.08 \n",
+ "77589 42 N 87193.86 \n",
+ "77590 41 N 15985.08 \n",
+ "\n",
+ " ST_REELEICAO ST_DECLARAR_BENS \n",
+ "0 S S \n",
+ "1 S S \n",
+ "2 N S \n",
+ "3 N S \n",
+ "4 N S \n",
+ "... ... ... \n",
+ "77586 N S \n",
+ "77587 N S \n",
+ "77588 S S \n",
+ "77589 N S \n",
+ "77590 N S \n",
+ "\n",
+ "[77591 rows x 31 columns]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Renomear a coluna duplicada no DataFrame 'candidatos'\n",
+ "candidatos = candidatos.rename(columns={'SQ_CANDIDATO': 'SQ_CANDIDATO_Candidato'})\n",
+ "complementos = complementos.rename(columns={'SQ_CANDIDATO': 'SQ_CANDIDATO_Complemento'})\n",
+ "\n",
+ "# Conexão com SQLite em memória\n",
+ "conn = sqlite3.connect(':memory:')\n",
+ "\n",
+ "# Salvar os DataFrames como tabelas SQLite\n",
+ "candidatos.to_sql('candidato', conn, index=False)\n",
+ "complementos.to_sql('complemento', conn, index=False)\n",
+ "\n",
+ "# Realizar o JOIN com as colunas renomeadas\n",
+ "eleicao = pd.read_sql_query('SELECT * FROM candidato JOIN complemento ON candidato.SQ_CANDIDATO_Candidato = complemento.SQ_CANDIDATO_Complemento', conn)\n",
+ "\n",
+ "# Fechar a conexão\n",
+ "conn.close()\n",
+ "\n",
+ "# Exibir o resultado\n",
+ "print(eleicao)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 56,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 0
+ },
+ "id": "D243i1ozhCaQ",
+ "outputId": "f0e36fd4-22e1-45cc-f049-f61b68e77608"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " SG_UF | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " SG_UE | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NM_UE | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_CARGO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_CARGO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " SQ_CANDIDATO_Candidato | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NR_CANDIDATO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NM_CANDIDATO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NR_PARTIDO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " SG_PARTIDO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NM_PARTIDO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " SG_UF_NASCIMENTO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DT_NASCIMENTO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_GENERO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_GENERO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_GRAU_INSTRUCAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_GRAU_INSTRUCAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_ESTADO_CIVIL | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_ESTADO_CIVIL | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_COR_RACA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_COR_RACA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " CD_OCUPACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_OCUPACAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " SQ_CANDIDATO_Complemento | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " DS_NACIONALIDADE | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NM_MUNICIPIO_NASCIMENTO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " NR_IDADE_DATA_POSSE | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " ST_QUILOMBOLA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " VR_DESPESA_MAX_CAMPANHA | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " ST_REELEICAO | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ " ST_DECLARAR_BENS | \n",
+ " 0 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ "SG_UF 0\n",
+ "SG_UE 0\n",
+ "NM_UE 0\n",
+ "CD_CARGO 0\n",
+ "DS_CARGO 0\n",
+ "SQ_CANDIDATO_Candidato 0\n",
+ "NR_CANDIDATO 0\n",
+ "NM_CANDIDATO 0\n",
+ "NR_PARTIDO 0\n",
+ "SG_PARTIDO 0\n",
+ "NM_PARTIDO 0\n",
+ "SG_UF_NASCIMENTO 0\n",
+ "DT_NASCIMENTO 0\n",
+ "CD_GENERO 0\n",
+ "DS_GENERO 0\n",
+ "CD_GRAU_INSTRUCAO 0\n",
+ "DS_GRAU_INSTRUCAO 0\n",
+ "CD_ESTADO_CIVIL 0\n",
+ "DS_ESTADO_CIVIL 0\n",
+ "CD_COR_RACA 0\n",
+ "DS_COR_RACA 0\n",
+ "CD_OCUPACAO 0\n",
+ "DS_OCUPACAO 0\n",
+ "SQ_CANDIDATO_Complemento 0\n",
+ "DS_NACIONALIDADE 0\n",
+ "NM_MUNICIPIO_NASCIMENTO 0\n",
+ "NR_IDADE_DATA_POSSE 0\n",
+ "ST_QUILOMBOLA 0\n",
+ "VR_DESPESA_MAX_CAMPANHA 0\n",
+ "ST_REELEICAO 0\n",
+ "ST_DECLARAR_BENS 0\n",
+ "dtype: int64"
+ ]
+ },
+ "execution_count": 56,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#Verificar nulos na base de dados complemento\n",
+ "eleicao.isnull().sum()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "GPK7n3aytAxS"
+ },
+ "source": [
+ "- **Análise de Outliers**.\n",
+ "Identifiquei 10 candidatos com valores exorbitantes na base de dados (VR_DESPESA_MAX_CAMPANHA).\n",
+ "\n",
+ "*R$67.276.114,50 (sessenta e sete milhões, duzentos e setenta e seis mil, cento e quatorze reais e cinquenta centavos)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 57,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "XQnvumgDtXM9",
+ "outputId": "f00b56f4-6113-41cc-e811-a79312844808"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " SG_UF SG_UE NM_UE CD_CARGO DS_CARGO SQ_CANDIDATO_Candidato \\\n",
+ "4177 SP 71072 SÃO PAULO 11 PREFEITO 250002098117 \n",
+ "9090 SP 71072 SÃO PAULO 11 PREFEITO 250001978066 \n",
+ "14305 SP 71072 SÃO PAULO 11 PREFEITO 250002180213 \n",
+ "38759 SP 71072 SÃO PAULO 11 PREFEITO 250002355541 \n",
+ "48452 SP 71072 SÃO PAULO 11 PREFEITO 250001884312 \n",
+ "51774 SP 71072 SÃO PAULO 11 PREFEITO 250002078851 \n",
+ "61624 SP 71072 SÃO PAULO 11 PREFEITO 250001926547 \n",
+ "64331 SP 71072 SÃO PAULO 11 PREFEITO 250002163891 \n",
+ "64458 SP 71072 SÃO PAULO 11 PREFEITO 250002031025 \n",
+ "72385 SP 71072 SÃO PAULO 11 PREFEITO 250002362195 \n",
+ "\n",
+ " NR_CANDIDATO NM_CANDIDATO NR_PARTIDO \\\n",
+ "4177 15 RICARDO LUIS REIS NUNES 15 \n",
+ "9090 28 PABLO HENRIQUE COSTA MARÇAL 28 \n",
+ "14305 45 JOSE LUIZ DATENA 45 \n",
+ "38759 27 ALBERTO FELIPPE HADDAD FILHO 27 \n",
+ "48452 30 MARINA HELENA CUNHA PEREIRA SANTOS 30 \n",
+ "51774 16 ALTINO DE MELO PRAZERES JUNIOR 16 \n",
+ "61624 50 GUILHERME CASTRO BOULOS 50 \n",
+ "64331 40 TABATA CLÁUDIA AMARAL DE PONTES 40 \n",
+ "64458 80 RICARDO SENESE 80 \n",
+ "72385 29 JOÃO JORGE CAPRONI COSTA PIMENTA 29 \n",
+ "\n",
+ " SG_PARTIDO ... CD_OCUPACAO DS_OCUPACAO \\\n",
+ "4177 MDB ... 275 PREFEITO \n",
+ "9090 PRTB ... 257 EMPRESÁRIO \n",
+ "14305 PSDB ... 171 JORNALISTA E REDATOR \n",
+ "38759 DC ... 125 ADMINISTRADOR \n",
+ "48452 NOVO ... 121 ECONOMISTA \n",
+ "51774 PSTU ... 187 FERROVIÁRIO \n",
+ "61624 PSOL ... 277 DEPUTADO \n",
+ "64331 PSB ... 277 DEPUTADO \n",
+ "64458 UP ... 187 FERROVIÁRIO \n",
+ "72385 PCO ... 171 JORNALISTA E REDATOR \n",
+ "\n",
+ " SQ_CANDIDATO_Complemento DS_NACIONALIDADE NM_MUNICIPIO_NASCIMENTO \\\n",
+ "4177 250002098117 BRASILEIRA NATA SÃO PAULO \n",
+ "9090 250001978066 BRASILEIRA NATA GOIÂNIA \n",
+ "14305 250002180213 BRASILEIRA NATA RIBEIRÃO PRETO \n",
+ "38759 250002355541 BRASILEIRA NATA SÃO LUÍS \n",
+ "48452 250001884312 BRASILEIRA NATA BRASÍLIA \n",
+ "51774 250002078851 BRASILEIRA NATA SÃO LUÍS \n",
+ "61624 250001926547 BRASILEIRA NATA SÃO PAULO \n",
+ "64331 250002163891 BRASILEIRA NATA SÃO PAULO \n",
+ "64458 250002031025 BRASILEIRA NATA SÃO PAULO \n",
+ "72385 250002362195 BRASILEIRA NATA SÃO PAULO \n",
+ "\n",
+ " NR_IDADE_DATA_POSSE ST_QUILOMBOLA VR_DESPESA_MAX_CAMPANHA \\\n",
+ "4177 57 N 67276114.5 \n",
+ "9090 37 N 67276114.5 \n",
+ "14305 67 N 67276114.5 \n",
+ "38759 68 N 67276114.5 \n",
+ "48452 44 N 67276114.5 \n",
+ "51774 57 N 67276114.5 \n",
+ "61624 42 N 67276114.5 \n",
+ "64331 31 N 67276114.5 \n",
+ "64458 37 N 67276114.5 \n",
+ "72385 27 N 67276114.5 \n",
+ "\n",
+ " ST_REELEICAO ST_DECLARAR_BENS \n",
+ "4177 S S \n",
+ "9090 N S \n",
+ "14305 N S \n",
+ "38759 N S \n",
+ "48452 N S \n",
+ "51774 N S \n",
+ "61624 N S \n",
+ "64331 N S \n",
+ "64458 N S \n",
+ "72385 N S \n",
+ "\n",
+ "[10 rows x 31 columns]\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Filtrando os valores maiores que 10.000.000,00 (10 milhoes) na coluna VR_DESPESA_MAX_CAMPANHA\n",
+ "eleicoes_filtradas = eleicao[eleicao['VR_DESPESA_MAX_CAMPANHA'] >= 10000000.00]\n",
+ "\n",
+ "# Exibindo o DataFrame filtrado\n",
+ "print(eleicoes_filtradas)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "K0UdlGlM1CJo"
+ },
+ "source": [
+ "- Notei que os dados acima não representam outliers, mas sim os valores reais de campanha dos atuais candidatos à prefeitura de São Paulo."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 58,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 0
+ },
+ "id": "_RUpjM-WUaYD",
+ "outputId": "fe3c40bc-57c0-4fdd-8701-500fb314ae3c"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/javascript": "\n async function download(id, filename, size) {\n if (!google.colab.kernel.accessAllowed) {\n return;\n }\n const div = document.createElement('div');\n const label = document.createElement('label');\n label.textContent = `Downloading \"${filename}\": `;\n div.appendChild(label);\n const progress = document.createElement('progress');\n progress.max = size;\n div.appendChild(progress);\n document.body.appendChild(div);\n\n const buffers = [];\n let downloaded = 0;\n\n const channel = await google.colab.kernel.comms.open(id);\n // Send a message to notify the kernel that we're ready.\n channel.send({})\n\n for await (const message of channel.messages) {\n // Send a message to notify the kernel that we're ready.\n channel.send({})\n if (message.buffers) {\n for (const buffer of message.buffers) {\n buffers.push(buffer);\n downloaded += buffer.byteLength;\n progress.value = downloaded;\n }\n }\n }\n const blob = new Blob(buffers, {type: 'application/binary'});\n const a = document.createElement('a');\n a.href = window.URL.createObjectURL(blob);\n a.download = filename;\n div.appendChild(a);\n a.click();\n div.remove();\n }\n ",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/javascript": "download(\"download_c537b138-3ac6-404c-b22a-6b8ec1fe70ac\", \"candidatosSP.csv\", 20293611)",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "#salvar no csv\n",
+ "eleicao.to_csv('candidatosSP.csv', index=False)\n",
+ "\n",
+ "#baixar arquivo csv\n",
+ "files.download('candidatosSP.csv')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "G3bW46cT8j-x"
+ },
+ "source": [
+ "#Visualizações Gráficas 📉📈"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "cQpRts54bOh1"
+ },
+ "source": [
+ " - **Distribuição de Gênero:** Analisar a proporção de candidatos por gênero (`CD_GENERO`, `DS_GENERO`)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 59,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "ffwAURWWuFbQ",
+ "outputId": "f34ebd4f-fb73-424a-aaa0-d108d7d57dde"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array(['MASCULINO', 'FEMININO'], dtype=object)"
+ ]
+ },
+ "execution_count": 59,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#Visualizar os valores únicos na coluna DS_GENERO\n",
+ "eleicao['DS_GENERO'].unique()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 60,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 210
+ },
+ "id": "eF2oXbTYvt0j",
+ "outputId": "eb9aa89c-cdee-495b-9c05-3746f9752cc4"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " DS_GENERO | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " count | \n",
+ " 77591 | \n",
+ "
\n",
+ " \n",
+ " unique | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " top | \n",
+ " MASCULINO | \n",
+ "
\n",
+ " \n",
+ " freq | \n",
+ " 51168 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ "count 77591\n",
+ "unique 2\n",
+ "top MASCULINO\n",
+ "freq 51168\n",
+ "Name: DS_GENERO, dtype: object"
+ ]
+ },
+ "execution_count": 60,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Descrever estatísticas da coluna DS_GENERO\n",
+ "eleicao['DS_GENERO'].describe()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 61,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 573
+ },
+ "id": "RmtR7e_caJeV",
+ "outputId": "6725fc28-e0c6-47a0-eb5d-daeb96e89015"
+ },
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtUAAAIsCAYAAAA9LlW6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABoz0lEQVR4nO3deXhM5///8deEJBISxFYiiKjYooKKWGIvsVZbe4PysS+l1RZt0Q1tLbUTYtdSS62pKkVKU11QWltJqKWihCwSksj8/vDLfDudIJkJSXg+risX59z3uc97BuOVO/c5x2A0Go0CAAAAYDW77C4AAAAAyO0I1QAAAICNCNUAAACAjQjVAAAAgI0I1QAAAICNCNUAAACAjQjVAAAAgI0I1QAAAICNCNUAANzD1atXNWvWLP3555/ZXQqAHI5QDQD/36xZs+Tt7f1IzhUUFKSgoCDT9oEDB+Tt7a3t27dn2TkuXLggb29vbdiwIdPHbt++XbVr11bXrl119uxZvfvuu1q6dGmW1XY/3t7emjVr1iM514O899572rZtm9544w0lJydndzkAcjBCNYDH0oYNG+Tt7W368vHxUYMGDdS3b18tX75c8fHxWXKeqKgozZo1S8ePH8+S8XKKRYsWqXPnzipevLgCAwO1Y8cONW/ePLvLslpqaqo2btyoV155RX5+fqpatar8/f3Vp08frVmzRklJSRbHhIaGKjIyUhs2bFDx4sW1YMGCbKgcQG6RN7sLAICHafjw4SpdurRSUlJ09epV/fTTT5o4caKWLl2quXPnqlKlSqa+gwYNUv/+/TM1/pUrVzR79my5u7urcuXKGT4uJCQkU+exhru7u44cOaK8eTP/UT9jxgyVKFFCefPmVXR0tPLnzy9HR8eHUOXDd+vWLQ0ZMkT79u2Tr6+v+vbtqyJFiigmJkY//fST3nvvPf3222+aOHGi2XHXr1/XzJkz5ezsrMmTJ2vt2rVKSUmx6v0E8PjjkwHAYy0gIEA+Pj6m7QEDBig8PFwDBw7U4MGDFRoaqnz58kmS8ubN+9ADU2JiopycnOTg4PBQzyNJBoPB6iDs7u5u+r2bm1tWlZQtJk6cqH379mns2LHq1auXWVufPn109uxZ7d+/3+K4Hj16mH7v5uamAQMGPPRa05OSkqLU1NRH8ncGgPVY/gHgiePv76/Bgwfr4sWL2rx5s2l/emuq9+/fr27duql27dry9fVVy5YtNW3aNEl310G/9NJLkqQxY8aYlpqkrWEOCgpS27Zt9fvvv6tHjx565plnTMf+d011mtTUVE2bNk3169dXjRo1NHDgQP39999mfZo2barRo0dbHPvfMe+1pvrMmTN69dVXVbduXVWvXl0tW7bU9OnTTe3nz5/X+PHj1bJlS1WvXl1+fn4aPny4Lly4YHHO8+fPa/jw4apTp46eeeYZde7cWXv27LF809ORlJSkiRMnqm7duvL19dXAgQN1+fLldPtGRUVpzJgxqlevnqpVq6Y2bdpo3bp1DzzH33//rXXr1qlhw4YWgTpNuXLlzAK0dPfPYenSpWrTpo18fHxUr149jRs3TjExMWb9mjZtqgEDBuiXX37RSy+9JB8fHzVr1kwbN260OE9sbKw++ugjNWrUSNWqVVOLFi0UHBys1NRUU5+0P7OQkBAtXbpUzZs3l4+Pj86cOSNJCg8PV/fu3VWjRg3Vrl1bgwYNMrUByF7MVAN4InXo0EHTpk3Tvn371Llz53T7/PnnnxowYIC8vb01fPhwOTg46Ny5czp48KAkycvLS8OHD9fMmTPVpUsX1apVS5JUs2ZN0xg3btxQv3791KZNG7Vv315FihS5b13z5s2TwWBQv379dO3aNS1btky9e/fWpk2bTDPqtjhx4oR69OihvHnzqkuXLnJ3d9dff/2l7777TiNHjpQkHTlyRIcPH1abNm301FNP6cKFC1q9erV69uypbdu2ycnJSdLdO2N07dpViYmJCgoKUuHChfXVV19p0KBBmjlzplq0aHHfWt5++21t3rxZbdu2Vc2aNfXjjz+mu/zm6tWr6ty5swwGg3r06CE3NzeFhYXp7bffVnx8vHr37n3Pc4SFhenOnTtq3759pt6ncePG6auvvtILL7ygoKAgXbhwQatWrdKxY8f0xRdfyN7e3tT33LlzevXVV/XSSy+pY8eOWr9+vUaPHq2qVavq6aeflnT3JxQvv/yyoqKi1LVrV5UsWVKHDh3StGnT9M8//+jtt982O/+GDRt0+/Ztde7cWQ4ODipYsKB++OEH9evXT6VLl9bQoUN169YtrVy5Ut26ddOGDRtUunTpTL1GAFnMCACPofXr1xsrVqxoPHLkyD371KpVy/j888+btmfOnGmsWLGiaXvJkiXGihUrGq9du3bPMY4cOWKsWLGicf369RZtL7/8srFixYrGL774It22l19+2bT9448/GitWrGhs2LChMS4uzrQ/NDTUWLFiReOyZctM+5o0aWJ86623Hjjm+fPnLWrr0aOH0dfX13jx4kWzY1NTU02/T0xMtBj70KFDxooVKxq/+uor076PPvrIWLFiRePPP/9s2hcfH29s2rSpsUmTJsY7d+5YjJPm+PHjxooVKxonTJhgtv+1114zVqxY0Thz5kzTvrFjxxrr169vjI6ONus7cuRIY61atdKtN83EiRONFStWNB4/ftxs/+3bt43Xrl0zff177J9//tlYsWJF4+bNm82OCQsLs9jfpEkTi/fg2rVrxmrVqhknT55s2jdnzhxjjRo1jJGRkWZjTpkyxVi5cmXjpUuXjEbj//2Z1axZ0+LvXYcOHYz+/v7G69evm/YdP37cWKlSJeObb755z/cAwKPB8g8ATyxnZ2fdvHnznu2urq6SpF27dpn9iD4zHBwc9MILL2S4//PPP68CBQqYtlu1aqVixYpp7969Vp3/36Kjo/Xzzz/rxRdfVKlSpczaDAaD6ff/nhFPTk7W9evXVaZMGbm6uurYsWOmtr1796p69eqqXbu2aV/+/PnVpUsXXbx4UadPn75nLWmv579LYP67RMNoNGrHjh1q2rSpjEajoqOjTV8NGjRQXFyc/vjjj3ueJ+0uL87Ozmb7w8LC5O/vb/pq2rSpqW379u1ycXFR/fr1zc5XtWpVOTs768CBA2ZjVahQwew9cHNzk6enp86fP282Zq1ateTq6mo2Zr169XTnzh39/PPPZmM+99xzZmvZr1y5ouPHj6tjx44qVKiQaX+lSpVUr169LPn7AcA2LP8A8MRKSEi473KM1q1ba+3atXrnnXc0depU+fv7q0WLFmrVqpXs7DI2J1GiRIlMXWBWtmxZs22DwaCyZcvq4sWLGR7jXtJCXsWKFe/b79atW1qwYIE2bNigqKgoGY1GU1tcXJzp95cuXdIzzzxjcXz58uVN7fc618WLF2VnZ6cyZcqke2ya6OhoxcbGas2aNVqzZk26Y0VHR9/zteTPn1/S3T/rf6tZs6aWLFki6e6dWNKW9Eh3l3PExcXJ398/3TGvXbtmtl2yZEmLPgULFjRbf33u3DmdPHnynmP+9zX8dynHpUuXJEmenp4Wx3p5eWnfvn1KSEiw+OYBwKNDqAbwRLp8+bLi4uIsQt2/5cuXT6tWrdKBAwe0Z88eff/99woNDdWaNWu0ePFi5cmT54HnyYp10Bl1586dDNX0IB988IE2bNigXr16qUaNGnJxcZHBYNDIkSPNAvajkPYTgvbt26tjx47p9rnfA3vSQvqpU6fMbp/o5uamevXqSZLZxapp5yxSpIimTJmS7pj/vRtKRt7z1NRU1a9fX//73//SbS9XrpzZ9qP8ewMgaxCqATyRNm3aJElq0KDBffvZ2dmZlgiMGTNG8+fP1/Tp03XgwAHVq1fPbNlEVjh37pzZttFo1Llz58yCY8GCBRUbG2tx7KVLl+Th4XHPsdPaTp06dd8avvnmGz3//PNmdxi5ffu22Sy1JJUqVUqRkZEWx0dERJja78Xd3V2pqan666+/zGan045N4+bmpvz58ys1NdUUgjMjICBAefLk0ZYtWzJ8sWKZMmUUHh6umjVrZlm4LVOmjBISEqx6DdL/vZf3er8LFy7MLDWQzVhTDeCJEx4errlz56p06dL3DVo3btyw2Jf2gJe0J/Cl3QkjvZBrjY0bN5o97XH79u36559/FBAQYNrn4eGh3377zewpgLt377a49d5/ubm56dlnn9X69etNywnS/HsGOr2Z1xUrVujOnTtm+xo1aqQjR47o0KFDpn0JCQn68ssv5e7urgoVKtyzlrTXs2LFCrP9y5YtM9vOkyePWrZsqW+++Sbdbwbut/RDuhtGX3zxRYWFhWnlypXp9vnv7HtgYKDu3LmjuXPnWvRNSUmx6s86MDBQhw4d0vfff2/RFhsbq5SUlPseX7x4cVWuXFkbN240O/+pU6e0f/9+NWrUKNM1AchazFQDeKyFhYUpIiJCd+7c0dWrV3XgwAHt379fpUqV0rx58+77cJQ5c+bol19+UaNGjeTu7q5r167p888/11NPPWW6fV7aBXyrV69W/vz55ezsrOrVq993xvh+ChYsqO7du+uFF14w3VKvbNmyZrf969Spk7755hv973//U2BgoP766y9t2bLlvktZ0rzzzjvq1q2bOnbsqC5duqh06dK6ePGi9uzZY5q9b9y4sTZt2qQCBQqoQoUKOnz4sH744QezC+QkqX///tq2bZv69eunoKAgFSxYUBs3btSFCxc0a9as+647r1y5stq2bavPP/9ccXFx8vX11Y8//mgxUy9Jr7/+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O++8Y3qaoiSVLVtWISEhmjx5svr37y83NzcNHz5cffr0MRurX79+MhqNWrx4saKjo1W5cmWFhITwNEUAAABIkgxGLg/PFkePHpUk+fj4ZFsN0/Zv1cXY6Gw7P4Cs5+7qptfqt83uMgDgsZCZvJbj11QDAAAAOR2hGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsBGhGgAAALARoRoAAACwEaEaAAAAsFGODdU3b95UQECAvL29dfToUbO2tWvXqmXLlvLx8VH79u21e/dui+Pj4uI0duxY1alTR76+vho+fLiuXLli0e/gwYPq0qWLqlevriZNmig4OFhGo9Gsj9FoVHBwsBo3bqzq1aurS5cuOnz4cJa+XgAAAOReOTZUz507V3fu3LHYv23bNr377rsKDAzUwoULVaNGDQ0dOtQi5I4YMUL79+/XhAkTNGXKFEVGRqpfv35KSUkx9Tl37pz69u2rYsWKacGCBerVq5dmzpypxYsXm421cOFCzZw5U71799aCBQtUrFgx9enTR+fPn38orx0AAAC5S44M1WfOnNHnn3+uYcOGWbTNnDlTbdq00YgRI1S3bl29//77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8skn6X4Dn5Xy5Mmj/v3765133rHqeBcXF7388suaN2+eRVvr1q3l7u6uefPmady4cUpISJC7u7v69Omjvn378jRFSJIMRi7RBwAAAGzCmmoAAADARoRqAAAAwEaEagAAAMBGhGoAAADARoRqAAAAwEaEagAAAMBGhGoAAADARoRqAEC6QkNDtWrVquwuAwByBZ6oCACwcOzYMY0fP15OTk5yc3NTYGBgdpcEADkaT1QEgCfA+fPntWTJEu3fv1+XL1+WJLm7u8vPz09dunRRpUqVTH2Tk5P14osvqk+fPvLw8NCIESO0adMmubm5ZVf5AJDjEaoB4DG3e/dujRw5Unny5FG7du1UqVIl2dnZKSIiQjt27NClS5e0a9cuubu7S5L+/PNP/frrr+rataskafv27SpSpIieffbZ7HwZAJCjEaoB4DH2119/qUOHDipZsqSWLl2q4sWLm7WnpKTo888/V4sWLVSyZMlsqvLeEhIS5OzsnN1lAMADcaEiADzGFi1apISEBE2aNMkiUEtS3rx51bNnT7NAfebMGQ0fPlx16tSRj4+PXnjhBe3atcvsuA0bNsjb21u//vqrJk2apLp166pGjRoaMmSIoqOjLc6zd+9ede/eXTVq1JCvr6/69++vP//806zP6NGj5evrq7/++kv9+vWTr6+vRo0aJeluuJ48ebIaNWqkatWqqWXLlgoJCRHzQgByCkI1ADzGdu/erbJly+qZZ57JUP8///xTXbp00ZkzZ9SvXz+NHj1azs7OGjJkiL799luL/h9++KFOnDihoUOHqlu3btq9e7fef/99sz4bN27UgAED5OzsrFGjRmnw4ME6ffq0unfvrgsXLpj1TUlJUd++fVWkSBG99dZbeu6552Q0GjVo0CAtXbpUDRs21JgxY+Tp6alPPvlEkyZNsv7NAYAsxN0/AOAxFR8frytXrqh58+YWbbGxsUpJSTFtOzs7K1++fProo49UsmRJrV+/Xg4ODpKk7t27q1u3bpoyZYpatGhhNk6hQoW0ePFiGQwGSVJqaqpWrFihuLg4ubi46ObNm/roo4/UqVMnffDBB6bjOnbsqFatWmnBggVm+5OSktSqVSu9/vrrpn07d+7Ujz/+qBEjRmjQoEGSpB49emj48OFavny5Xn75ZZUpUyYL3jEAsB4z1QDwmIqPj5ekdNckBwUFyd/f3/S1atUq3bhxQz/++KMCAwMVHx+v6OhoRUdH6/r162rQoIHOnj2rqKgos3E6d+5sCtSSVLt2bd25c0cXL16UJP3www+KjY1VmzZtTONFR0fLzs5OzzzzjA4cOGBRW7du3cy2w8LClCdPHgUFBZnt79Onj4xGo8LCwqx7gwAgCzFTDQCPqfz580u6ux75v95//33dvHlTV69e1RtvvCHp7kWNRqNRM2bM0IwZM9Id89q1aypRooRpu1SpUmbtrq6uku7OhEvS2bNnJUm9evVKd7wCBQqYbefNm1dPPfWU2b6LFy+qePHiFn29vLxM7QCQ3QjVAPCYcnFxUbFixSwuCJRkWmP97zXNqampku7OADds2DDdMf+7zMLOLv0feKZdQJj26yeffKJixYpZ9MuTJ4/ZtoODwz3HBICcjFANAI+xxo0ba+3atTpy5IiqV69+374eHh6SJHt7e9WrVy9Lzp82ZpEiRawe093dXeHh4YqPjzebrY6IiDC1A0B2YzoAAB5j//vf/+Tk5KSxY8fq6tWrFu3/viVdkSJFVKdOHa1Zs0ZXrlyx6JverfIepGHDhipQoIAWLFig5ORkq8YMCAjQnTt3tGrVKrP9S5culcFgUEBAQKbrAoCsxkw1ADzGypUrpylTpuj1119Xq1atTE9UNBqNunDhgrZu3So7OzvTOubx48ere/fuateunTp37iwPDw9dvXpVhw8f1uXLl7V58+ZMnb9AgQKaMGGC3nzzTb3wwgtq3bq13NzcdOnSJe3du1c1a9bUuHHj7jtG06ZN5efnp+nTp+vixYvy9vbW/v37tWvXLvXq1Ys7fwDIEQjVAPCYa968ubZs2aLFixdr//79Wr9+vQwGg0qVKqVGjRqpW7duqlSpkiSpQoUKWr9+vWbPnq2vvvpKN27ckJubm6pUqaIhQ4ZYdf527dqpePHiCg4OVkhIiJKSklSiRAnVrl1bL7zwwgOPt7Oz07x58zRz5kyFhoZqw4YNcnd315tvvqk+ffpYVRMAZDUeUw4AAADYiDXVAAAAgI0I1QAAAICNCNUAAACAjQjVAAAAgI0I1QAAAICNCNUAAACAjQjVAAAAgI0I1QAAAICNCNUAAACAjQjVAAAAgI0I1QAAAICNCNUAAACAjf4fg9YzR1Zbts0AAAAASUVORK5CYII=",
+ "text/plain": [
+ "