<jupyter_start><jupyter_text>Vereadores mais votados do município do Rio de Janeiro por zonaEsse programa lê o banco de dados oferecido pelo TSE para votações estaduais e seleciona os vereadores de um determinado município, filtrando apenas as variáveis desejadas, e gera um novo arquivo *.csv*.Esses dados podem ser encontrados no repositório de dados eleitorais do TSE:**http://www.tse.jus.br/eleicoes/estatisticas/repositorio-de-dados-eleitorais-1/repositorio-de-dados-eleitorais**A lista de zonas eleitorais do Estado do Rio por bairro pode ser encontrada no site do TRE:http://www.tre-rj.jus.br/site/eleicoes/2016/arquivos/porBairroZon.xls<jupyter_code># Importa os dados dos candidatos do estado do Rio em 2016.
# Inicialmente são 30 as variáveis no banco de dados para cada linha.

import csv
import pandas as pd
import os

# Define como delimitador o ponto e vírgula
# Sem isso o Python lê a linha inteira do CSV com um índice único numa lista
csv.register_dialect('pVirgula', delimiter=';')
csv.register_dialect('virgula', delimiter=',')

# Importa os dados dos candidatos do estado do Rio em 2016
with open ('data/votacao_candidato_munzona_2016_RJ.csv', 'r', encoding="latin-1") as vot_f:
    leitor = csv.reader(vot_f, dialect='pVirgula')
    dados = list(leitor)

# lista com os rótulos dos dados
cols = ['DT_GERACAO', 'HH_GERACAO', 'ANO_ELEICAO', 'CD_TIPO_ELEICAO', 
           'NM_TIPO_ELEICAO', 'NR_TURNO', 'CD_ELEICAO', 'DS_ELEICAO', 
           'DT_ELEICAO', 'TP_ABRANGENCIA', 'SG_UF', 'SG_UE', 'NM_UE',
           'CD_MUNICIPIO', 'NM_MUNICIPIO', 'NR_ZONA', 'CD_CARGO', 'DS_CARGO',
           'SQ_CANDIDATO', 'NR_CANDIDATO', 'NM_CANDIDATO', 'NM_URNA_CANDIDATO',
           'NM_SOCIAL_CANDIDATO', 'CD_SITUACAO_CANDIDATURA', 
           'DS_SITUACAO_CANDIDATURA', 'CD_DETALHE_SITUACAO_CAND', 
           'DS_DETALHE_SITUACAO_CAND', 'TP_AGREMIACAO', 'NR_PARTIDO', 
           'SG_PARTIDO', 'NM_PARTIDO', 'SQ_COLIGACAO', 'NM_COLIGACAO', 
           'DS_COMPOSICAO_COLIGACAO', 'CD_SIT_TOT_TURNO', 'DS_SIT_TOT_TURNO', 
           'ST_VOTO_EM_TRANSITO', 'QT_VOTOS_NOMINAIS']

drop_cols = ['DT_GERACAO', 'HH_GERACAO', 'ANO_ELEICAO', 'CD_TIPO_ELEICAO',
         'NM_TIPO_ELEICAO', 'NR_TURNO', 'CD_ELEICAO', 'DS_ELEICAO',
         'DT_ELEICAO', 'TP_ABRANGENCIA', 'SG_UF', 'SG_UE', 'NM_UE',
         'CD_MUNICIPIO','CD_CARGO', 'SQ_CANDIDATO', 'NR_CANDIDATO',
         'NM_CANDIDATO', 'NM_SOCIAL_CANDIDATO', 'CD_SITUACAO_CANDIDATURA',
         'DS_SITUACAO_CANDIDATURA', 'CD_DETALHE_SITUACAO_CAND',
         'DS_DETALHE_SITUACAO_CAND', 'TP_AGREMIACAO', 'NM_PARTIDO',
         'SQ_COLIGACAO', 'NM_COLIGACAO', 'DS_COMPOSICAO_COLIGACAO',
         'CD_SIT_TOT_TURNO',  'ST_VOTO_EM_TRANSITO']

# Lista vazia para receber os candidatos
rows = []

# Loop para selecionar apenas os candidatos a vereador do município do rio
# que foram eleitos
for linhas in dados:
    if linhas[14] == "RIO DE JANEIRO" and linhas[17] == "Vereador" and linhas[35] != "SUPLENTE" and linhas[35] != "NÃO ELEITO":
        rows.append(linhas)
    else:
        continue

# Utilizando o Pandas, adiciona os rótulos das colunas e exclui as
# colunas indesejadas
ver = pd.DataFrame(rows)
ver.columns = cols
ver.drop(drop_cols, axis=1, inplace=True)

ver
# Experimentações de análises com Pandas
zonas = ver.groupby(['NR_ZONA']).count()
zona = ver.loc[ver['NR_ZONA'] == '1']

zona.sort_values(['QT_VOTOS_NOMINAIS'], ascending=True)
#Salva os vereadores selecionados em um novo arquivo .csv
with open('data/votacao_filtro_munzona_2016_RJ.csv', 'w', encoding='latin-1', newline='') as novo_arquivo:
    escreve = csv.writer(novo_arquivo, dialect='pVirgula')
    escreve.writerows(ver)

novo_arquivo.close()
vot_f.close()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.11750470556601236, 'fraction_numerical': 0.009411132024737832, 'mean_word_length': 4.749613601236476, 'pattern_counts': {'":': 1, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '75971', 'license': 'MIT', 'n_tokens_mistral': 1682, 'n_tokens_neox': 1572, 'n_words': 325, 'path': '.ipynb_checkpoints/Vereadores RJ 2016-checkpoint.ipynb', 'repo_name': 'vinacius/vereadores_porZona_RJ', 'size': '3719'}