Esse repositório de código contém programas que baixam dados do Tribunal Superior Eleitoral, normalizam, agrupam e limpam. Atualmente as bases de dados disponíveis são:
- Candidaturas (1996 a 2018)
- Bens declarados (2006 a 2018)
- Votação por zona eleitoral (1996 a 2018)
A fonte primária é o Repositório de Dados Eleitorais do TSE. O processo é o seguinte:
- Baixar arquivos ZIP
- Para cada ZIP, extrair (em memória) os arquivos internos
- Para cada arquivo interno, processá-lo (identificar cabeçalho, limpar)
- Juntar todos os resultados em um arquivo
Algumas etapas de normalização são necessárias para facilitar análises e conversões dos dados, como:
- Retirar todos os acentos: alguns nomes aparecem com acentos em um ano e sem em outros, dificultando muito os agrupamentos;
- Retirar strings inúteis: valores como
#NULO#,#NULOe#NE#são retirados, deixando as células em branco; - Normalização dos códigos de cargo: os códigos de cargo variam para alguns anos, tornando difícil o agrupamento entre anos e, para facilitar as análises, normalizamos todos os anos;
- Renomear colunas: nem todas as colunas possuem nomes intuitivos e foram
nomeadas (exemplo:
COD_SIT_TOT_TURNOfoi renomeado paracodigo_totalizacao_turno). Para saber mais detalhes sobre as colunas que foram renomeadas, olhe os arquivos no diretórioheaders/(caso você altere algum desses arquivos, gere novamente os cabeçalhos finais compython tse.py headers).
Nota: nem todos os códigos/descrição foram normalizados (alguns apresentam inconsistências ainda não resolvidas e serão feitos em breve).
Os programas requerem Python 3.6+. Instale as dependências executando:
pip install -r requirements.txtO script tse.py baixa, trata e extrai os dados. Basta rodá-lo, passando que
tipo de dado quer baixar/tratar/extrair:
python tse.py candidatura
python tse.py bemdeclarado
python tse.py votacao-zonaOs dados ficarão disponíveis em:
data/download/: arquivos originais baixados, por anodata/output/: arquivos extraídos (agrupados por tipo)
As opções listadas abaixo podem ser utilizadas em conjunto.
Você pode especificar para quais anos deseja a extração (separados por vírgulas), como em:
python tse.py candidatura --years=2014,2018Caso queira apenas baixar os arquivos, utilize a opção --download-only.
Por padrão, caso os arquivos necessários para uma extração já existam em
data/download/, eles não serão baixados novamente. Você pode utilizar a opção
--force-redownload para que eles sejam deletados e baixados novamente.
Você pode especificar o arquivo de saída (que será sempre um CSV, mas pode estar compactado):
python tse.py candidatura --output=candidaturas.csv.gzInstale as dependências de desenvolvimento:
pip install -r dev-requirements.txtRode os testes:
pytest tests.pyAo alterar os arquivos, rode o comando black . para normalizá-los com relação
à PEP-0008.