Baixamos a prestação de contas dos candidatos em 2016 e seguimos com a seguinte pergunta: quanto os partidos políticos doaram para seus candidatos? É possível identificar uma diferença entre os valores doados para homens e para mulheres? Quais são os partidos que mais se destacam e por quê? Quais foram os candidados que mais se destacaram e por quê? Essas são algumas das perguntas que a nossa análise procurou responder.
A base de prestação de contas dos candidatos não possui a coluna "Sexo". Ou seja, apenas com essa base não é possível fazer as análises. Contudo, a base possui o nome e o número sequencial dos candidatos, algo que usaremos para importar os dados de sexo da base de candidaturas.
Escolhemos o Pandas para fazer essa análise. Trata-se de um dos melhores módulos Python para análise de dados. O Pandas permite manipular os arquivos do Tribunal Superior Eleitoral com facilidade. Como são muitos arquivos e muito grandes, não é possível abri-los em ferramentas mais convencionais, como o Libre Office Calc.
Vamos começar, então, importando o Pandas para o nosso script. Se você não tem o Pandas instalado, basta digitar "pip install Pandas" no seu terminal.
# -*- coding: utf-8
import pandas as pd
Agora vamos usar a função "read_csv" do Pandas para abrir o arquivo "receitas_candidatos_2016_brasil.txt". Esse arquivo possui o consolidado da prestação de contas de todos os candidatos nas eleições de 2016. É um arquivo de quase 1Gb. Temos alguns parâmetros:
- delimiter: ";" (os arquivos brasileiros possuem o delimitador ";" em vez da ",")
- decimal: "," (preciamos informar que no formato numérico brasileiro a casa decimal é separada por vírgula)
- encoding: "latin1" (o padrão brasileiro de encoding de caracteres usado pelo governo equivale ao "latin1" em Python)
- low_memory=False (o Pandas tenta adivinhar qual é o tipo de dado em cada coluna para economizar memória - número, texto etc - como uma das colunas possui mais de um tipo de dado, precisamos dizer ao Pandas que ele vai precisar usar mais memória)
base = pd.read_csv(
'data/receitas_candidatos_2016_brasil.txt',
delimiter=";",
decimal=",",
encoding="latin1",
low_memory=False)
Guardamos o arquivo na variável base e agora vamos exibir as 30 primeiras e 30 últimas linhas.
base
Cód. Eleição | Desc. Eleição | Data e hora | CNPJ Prestador Conta | Sequencial Candidato | UF | Sigla da UE | Nome da UE | Sigla Partido | Numero candidato | ... | Valor receita | Tipo receita | Fonte recurso | Especie recurso | Descricao da receita | CPF/CNPJ do doador originário | Nome do doador originário | Tipo doador originário | Setor econômico do doador originário | Nome do doador originário (Receita Federal) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25552898000131 | 160000007179 | PR | 75353 | CURITIBA | PDT | 12000 | ... | 500.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25552898000131 | 160000007179 | PR | 75353 | CURITIBA | PDT | 12000 | ... | 500.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
2 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25552898000131 | 160000007179 | PR | 75353 | CURITIBA | PDT | 12000 | ... | 500.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
3 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25552898000131 | 160000007179 | PR | 75353 | CURITIBA | PDT | 12000 | ... | 500.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
4 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25552898000131 | 160000007179 | PR | 75353 | CURITIBA | PDT | 12000 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
5 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25552898000131 | 160000007179 | PR | 75353 | CURITIBA | PDT | 12000 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
6 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25552898000131 | 160000007179 | PR | 75353 | CURITIBA | PDT | 12000 | ... | 5000.0 | Recursos de pessoas físicas | Outros Recursos | Transferência eletrônica | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
7 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25552898000131 | 160000007179 | PR | 75353 | CURITIBA | PDT | 12000 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
8 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25552898000131 | 160000007179 | PR | 75353 | CURITIBA | PDT | 12000 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
9 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25552898000131 | 160000007179 | PR | 75353 | CURITIBA | PDT | 12000 | ... | 2000.0 | Recursos de pessoas físicas | Outros Recursos | Transferência eletrônica | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
10 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25552898000131 | 160000007179 | PR | 75353 | CURITIBA | PDT | 12000 | ... | 500.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
11 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25490411000133 | 250000029177 | SP | 62391 | BOITUVA | PMDB | 15 | ... | 5000.0 | Recursos próprios | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
12 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25490411000133 | 250000029177 | SP | 62391 | BOITUVA | PMDB | 15 | ... | 2000.0 | Recursos próprios | Outros Recursos | Estimado | DOACAO ESTIMAVEL COMITÊ - RUA PROFESSORA CÉLIA... | #NULO | #NULO | #NULO | #NULO | #NULO |
13 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25490411000133 | 250000029177 | SP | 62391 | BOITUVA | PMDB | 15 | ... | 2800.0 | Recursos próprios | Outros Recursos | Transferência eletrônica | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
14 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25490411000133 | 250000029177 | SP | 62391 | BOITUVA | PMDB | 15 | ... | 3000.0 | Recursos de partido político | Fundo Partidario | Transferência eletrônica | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
15 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25490411000133 | 250000029177 | SP | 62391 | BOITUVA | PMDB | 15 | ... | 10000.0 | Recursos de partido político | Fundo Partidario | Transferência eletrônica | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
16 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25490411000133 | 250000029177 | SP | 62391 | BOITUVA | PMDB | 15 | ... | 540.0 | Recursos de pessoas físicas | Outros Recursos | Estimado | BANDEIRA PARA CAMPANHA | #NULO | #NULO | #NULO | #NULO | #NULO |
17 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25490411000133 | 250000029177 | SP | 62391 | BOITUVA | PMDB | 15 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Estimado | SERVIÇOS ADMINISTRATIVOS | #NULO | #NULO | #NULO | #NULO | #NULO |
18 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25490411000133 | 250000029177 | SP | 62391 | BOITUVA | PMDB | 15 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Estimado | SERVIÇOS ADMINISTRATIVOS | #NULO | #NULO | #NULO | #NULO | #NULO |
19 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25490411000133 | 250000029177 | SP | 62391 | BOITUVA | PMDB | 15 | ... | 200.0 | Recursos de pessoas físicas | Outros Recursos | Estimado | GRAVAÇÃO DE AUDIOS PARA RADIOS | #NULO | #NULO | #NULO | #NULO | #NULO |
20 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25490411000133 | 250000029177 | SP | 62391 | BOITUVA | PMDB | 15 | ... | 100.0 | Recursos de pessoas físicas | Outros Recursos | Estimado | GRAVAÇÃO DE AUDIO PARA DIVULGACAO EM CARRO DE ... | #NULO | #NULO | #NULO | #NULO | #NULO |
21 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25490411000133 | 250000029177 | SP | 62391 | BOITUVA | PMDB | 15 | ... | 300.0 | Recursos de pessoas físicas | Outros Recursos | Estimado | PRODUÇÃO DE JINGLES | #NULO | #NULO | #NULO | #NULO | #NULO |
22 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25490411000133 | 250000029177 | SP | 62391 | BOITUVA | PMDB | 15 | ... | 800.0 | Recursos de pessoas físicas | Outros Recursos | Estimado | PUBLICIDADE POR CARRO DE SOM | #NULO | #NULO | #NULO | #NULO | #NULO |
23 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25490411000133 | 250000029177 | SP | 62391 | BOITUVA | PMDB | 15 | ... | 1000.0 | Recursos próprios | Outros Recursos | Transferência eletrônica | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
24 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25490411000133 | 250000029177 | SP | 62391 | BOITUVA | PMDB | 15 | ... | 500.0 | Recursos próprios | Outros Recursos | Transferência eletrônica | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
25 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25746582000180 | 250000072494 | SP | 62278 | BILAC | PSDB | 45111 | ... | 300.0 | Recursos próprios | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
26 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25746582000180 | 250000072494 | SP | 62278 | BILAC | PSDB | 45111 | ... | 1000.0 | Recursos próprios | Outros Recursos | Estimado | PAS/AUTOMOVEL GM/CORSA WIND 2000/2000 - BRANCA... | #NULO | #NULO | #NULO | #NULO | #NULO |
27 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25746582000180 | 250000072494 | SP | 62278 | BILAC | PSDB | 45111 | ... | 30.0 | Recursos de pessoas físicas | Outros Recursos | Transferência eletrônica | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
28 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25746582000180 | 250000072494 | SP | 62278 | BILAC | PSDB | 45111 | ... | 215.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
29 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25746582000180 | 250000072494 | SP | 62278 | BILAC | PSDB | 45111 | ... | 90.0 | Recursos de outros candidatos | Outros Recursos | Estimado | 5000 SANTINHOS 7X0 CM - PREFEITO / VICE VEREAD... | #NULO | #NULO | #NULO | #NULO | #NULO |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
1867360 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25379727000152 | 210000004025 | RS | 85898 | CANOAS | PT | 13777 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867361 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25379727000152 | 210000004025 | RS | 85898 | CANOAS | PT | 13777 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867362 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25379727000152 | 210000004025 | RS | 85898 | CANOAS | PT | 13777 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867363 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25379727000152 | 210000004025 | RS | 85898 | CANOAS | PT | 13777 | ... | 3000.0 | Recursos de pessoas físicas | Outros Recursos | Estimado | CESSÃO DE SERVIÇOS JURIDICOS PERÍODO 16/08/201... | #NULO | #NULO | #NULO | #NULO | #NULO |
1867364 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25379727000152 | 210000004025 | RS | 85898 | CANOAS | PT | 13777 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867365 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25379727000152 | 210000004025 | RS | 85898 | CANOAS | PT | 13777 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867366 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25379727000152 | 210000004025 | RS | 85898 | CANOAS | PT | 13777 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867367 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25379727000152 | 210000004025 | RS | 85898 | CANOAS | PT | 13777 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867368 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25379727000152 | 210000004025 | RS | 85898 | CANOAS | PT | 13777 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867369 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25379727000152 | 210000004025 | RS | 85898 | CANOAS | PT | 13777 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867370 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25379727000152 | 210000004025 | RS | 85898 | CANOAS | PT | 13777 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867371 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25379727000152 | 210000004025 | RS | 85898 | CANOAS | PT | 13777 | ... | 1000.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867372 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25379727000152 | 210000004025 | RS | 85898 | CANOAS | PT | 13777 | ... | 1500.0 | Recursos de pessoas físicas | Outros Recursos | Estimado | CESSÃO DE CARRO DE SOM PERÍODO 16/08/2016 À 01... | #NULO | #NULO | #NULO | #NULO | #NULO |
1867373 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25379727000152 | 210000004025 | RS | 85898 | CANOAS | PT | 13777 | ... | 10000.0 | Recursos de pessoas físicas | Outros Recursos | Transferência eletrônica | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867374 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 26064156000120 | 260000006834 | SE | 31070 | ARAUÁ | PROS | 90123 | ... | 450.0 | Recursos próprios | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867375 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 26064156000120 | 260000006834 | SE | 31070 | ARAUÁ | PROS | 90123 | ... | 200.0 | Recursos de pessoas físicas | Outros Recursos | Estimado | PRESTAÇÃO SERVIÇOS GRATUITA DE TÉCNICOS DE ASS... | #NULO | #NULO | #NULO | #NULO | #NULO |
1867376 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25359813000101 | 130000003834 | MG | 42323 | JOSÉ RAYDAN | PV | 43666 | ... | 4950.0 | Recursos próprios | Outros Recursos | Transferência eletrônica | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867377 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25359813000101 | 130000003834 | MG | 42323 | JOSÉ RAYDAN | PV | 43666 | ... | 1000.0 | Recursos próprios | Outros Recursos | Estimado | 005/2016 CONTRATO DE CESSÃO GRATUITA DE VEÍCUL... | #NULO | #NULO | #NULO | #NULO | #NULO |
1867378 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25359813000101 | 130000003834 | MG | 42323 | JOSÉ RAYDAN | PV | 43666 | ... | 100.0 | Recursos de pessoas físicas | Outros Recursos | Estimado | 003/2016 CONTRATO DE PRESTAÇÃO GRATUITA DE SER... | #NULO | #NULO | #NULO | #NULO | #NULO |
1867379 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25359813000101 | 130000003834 | MG | 42323 | JOSÉ RAYDAN | PV | 43666 | ... | 100.0 | Recursos de pessoas físicas | Outros Recursos | Estimado | 002/2016 CONTRATO DE PRESTAÇÃO GRATUITA DE SER... | #NULO | #NULO | #NULO | #NULO | #NULO |
1867380 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25359813000101 | 130000003834 | MG | 42323 | JOSÉ RAYDAN | PV | 43666 | ... | 200.0 | Recursos de pessoas físicas | Outros Recursos | Estimado | 001/2016 CONTRATO DE PRESTAÇÃO GRATUITA DE SER... | #NULO | #NULO | #NULO | #NULO | #NULO |
1867381 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25536205000117 | 170000009990 | PE | 24210 | GLÓRIA DO GOITÁ | DEM | 25555 | ... | 320.0 | Recursos próprios | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867382 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25536205000117 | 170000009990 | PE | 24210 | GLÓRIA DO GOITÁ | DEM | 25555 | ... | 800.0 | Recursos de pessoas físicas | Outros Recursos | Estimado | CESSÃO DE MAO DE OBRA (MOTORISTA DIARIA) | #NULO | #NULO | #NULO | #NULO | #NULO |
1867383 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25536205000117 | 170000009990 | PE | 24210 | GLÓRIA DO GOITÁ | DEM | 25555 | ... | 650.0 | Recursos de pessoas físicas | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867384 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25536205000117 | 170000009990 | PE | 24210 | GLÓRIA DO GOITÁ | DEM | 25555 | ... | 883.8 | Recursos de pessoas físicas | Outros Recursos | Estimado | VEICULO UTILIZADO NO PERIODO DA CAMPANHA ELEIT... | #NULO | #NULO | #NULO | #NULO | #NULO |
1867385 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25536205000117 | 170000009990 | PE | 24210 | GLÓRIA DO GOITÁ | DEM | 25555 | ... | 70.0 | Recursos de partido político | Outros Recursos | Estimado | SERVICO DE CONTABILIDADE | #NULO | #NULO | #NULO | #NULO | #NULO |
1867386 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25536205000117 | 170000009990 | PE | 24210 | GLÓRIA DO GOITÁ | DEM | 25555 | ... | 70.0 | Recursos de partido político | Outros Recursos | Estimado | SERVIÇO DE CONTABILIDADE | #NULO | #NULO | #NULO | #NULO | #NULO |
1867387 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25536205000117 | 170000009990 | PE | 24210 | GLÓRIA DO GOITÁ | DEM | 25555 | ... | 50.0 | Recursos de partido político | Outros Recursos | Estimado | SANTINHOS | #NULO | #NULO | #NULO | #NULO | #NULO |
1867388 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25652723000104 | 160000008858 | PR | 74870 | CAPANEMA | PMDB | 15123 | ... | 500.0 | Recursos próprios | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867389 | 220 | Eleições Municipais 2016 | 24/10/201621:30:15 | 25652723000104 | 160000008858 | PR | 74870 | CAPANEMA | PMDB | 15123 | ... | 150.0 | Recursos próprios | Outros Recursos | Depósito em espécie | #NULO | #NULO | #NULO | #NULO | #NULO | #NULO |
1867390 rows × 35 columns
Essa tabela tem muitas colunas que não precisamos usar na nossa análise. Vamos recuperar os nomes das colunas e depois vamos fazer um recorte para gerar uma base apenas com as colunas que queremos. Para recuperar as colunas de uma base, digite:
base.columns
Index([u'Cód. Eleição', u'Desc. Eleição', u'Data e hora',
u'CNPJ Prestador Conta', u'Sequencial Candidato', u'UF', u'Sigla da UE',
u'Nome da UE', u'Sigla Partido', u'Numero candidato', u'Cargo',
u'Nome candidato', u'CPF do candidato', u'CPF do vice/suplente',
u'Numero Recibo Eleitoral', u'Numero do documento',
u'CPF/CNPJ do doador', u'Nome do doador',
u'Nome do doador (Receita Federal)', u'Sigla UE doador',
u'Número partido doador', u'Número candidato doador',
u'Cod setor econômico do doador', u'Setor econômico do doador',
u'Data da receita', u'Valor receita', u'Tipo receita', u'Fonte recurso',
u'Especie recurso', u'Descricao da receita',
u'CPF/CNPJ do doador originário', u'Nome do doador originário',
u'Tipo doador originário', u'Setor econômico do doador originário',
u'Nome do doador originário (Receita Federal)'],
dtype='object')
Agora, vamos criar uma nova variável chamada "base_cortada" e vamos criar um novo DataFrame - o nome que o Pandas dá para as bases de dados que você manipula por meio do módulo - com as seguintes colunas:
- Sequencial Candidato (essa é a chave que vai nos ajudar a buscar os dados de gênero depois)
- Nome Candidato (nome para referência mais rápida)
- UF (estado do candidato)
- Nome da UE (cidade)
- Sigla Partido
- Cargo (Prefeito ou Vereador)
- Nome do doador (nome do diretório ou comissão que doou)
- Número partido doador (número da sigla registrado junto ao TSE)
- Número candidato doador (número do candidato doador, se aplicável)
- Valor receita (valor da doação)
- Tipo de receita (categoria que nos ajuda a identificar se a doação foi de pessoa física ou de um partido, por exemplo)
- Fonte receita (se aplicável)
- Especie recurso (depósito em espécie? transferência eletrônica? etc)
base_cortada = pd.DataFrame(base, columns=[
u"Sequencial Candidato",
u"Nome Candidato",
u"UF",
u"Nome da UE",
u"Sigla Partido",
u"Cargo",
u"Nome do doador",
u"Número partido doador",
u"Número candidato doador",
u"Valor receita",
u"Tipo receita",
u"Fonte receita",
u"Especie recurso"
])
Vamos ver como ficou a nossa nova base cortada:
base_cortada
Sequencial Candidato | Nome Candidato | UF | Nome da UE | Sigla Partido | Cargo | Nome do doador | Número partido doador | Número candidato doador | Valor receita | Tipo receita | Fonte receita | Especie recurso | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 160000007179 | NaN | PR | CURITIBA | PDT | Vereador | LUIZ HENRIQUE TABORDA DOMINGOS | 12 | 12000 | 500.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
1 | 160000007179 | NaN | PR | CURITIBA | PDT | Vereador | ALESSANDRA EDUARDA PORNER BROERING | 12 | 12000 | 500.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
2 | 160000007179 | NaN | PR | CURITIBA | PDT | Vereador | WLADIMIR MAZZOLLA MORAIS | 12 | 12000 | 500.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
3 | 160000007179 | NaN | PR | CURITIBA | PDT | Vereador | RICARDO PERCEQUILO | 12 | 12000 | 500.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
4 | 160000007179 | NaN | PR | CURITIBA | PDT | Vereador | IVO ORLANDO PETRIS | 12 | 12000 | 1000.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
5 | 160000007179 | NaN | PR | CURITIBA | PDT | Vereador | LUIZ CELSO BRANCO | 12 | 12000 | 1000.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
6 | 160000007179 | NaN | PR | CURITIBA | PDT | Vereador | OSVALDIR BENATO | 12 | 12000 | 5000.0 | Recursos de pessoas físicas | NaN | Transferência eletrônica |
7 | 160000007179 | NaN | PR | CURITIBA | PDT | Vereador | GIOVANE MACHADO | 12 | 12000 | 1000.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
8 | 160000007179 | NaN | PR | CURITIBA | PDT | Vereador | GIOVANE MACHADO | 12 | 12000 | 1000.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
9 | 160000007179 | NaN | PR | CURITIBA | PDT | Vereador | GIOVANE MACHADO | 12 | 12000 | 2000.0 | Recursos de pessoas físicas | NaN | Transferência eletrônica |
10 | 160000007179 | NaN | PR | CURITIBA | PDT | Vereador | GIOVANE MACHADO | 12 | 12000 | 500.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
11 | 250000029177 | NaN | SP | BOITUVA | PMDB | Prefeito | JOSE APARECIDO CRISTO | 15 | 15 | 5000.0 | Recursos próprios | NaN | Depósito em espécie |
12 | 250000029177 | NaN | SP | BOITUVA | PMDB | Prefeito | JOSE APARECIDO CRISTO | 15 | 15 | 2000.0 | Recursos próprios | NaN | Estimado |
13 | 250000029177 | NaN | SP | BOITUVA | PMDB | Prefeito | JOSE APARECIDO CRISTO | 15 | 15 | 2800.0 | Recursos próprios | NaN | Transferência eletrônica |
14 | 250000029177 | NaN | SP | BOITUVA | PMDB | Prefeito | Direção Municipal/Comissão Provisória | 15 | 15 | 3000.0 | Recursos de partido político | NaN | Transferência eletrônica |
15 | 250000029177 | NaN | SP | BOITUVA | PMDB | Prefeito | Direção Municipal/Comissão Provisória | 15 | 15 | 10000.0 | Recursos de partido político | NaN | Transferência eletrônica |
16 | 250000029177 | NaN | SP | BOITUVA | PMDB | Prefeito | MONICA CRISTINA VIANNA DA SILVA | 15 | 15 | 540.0 | Recursos de pessoas físicas | NaN | Estimado |
17 | 250000029177 | NaN | SP | BOITUVA | PMDB | Prefeito | LUCAS DE CAMARGO | 15 | 15 | 1000.0 | Recursos de pessoas físicas | NaN | Estimado |
18 | 250000029177 | NaN | SP | BOITUVA | PMDB | Prefeito | LUCIANA PROVAZI DAS NEVES | 15 | 15 | 1000.0 | Recursos de pessoas físicas | NaN | Estimado |
19 | 250000029177 | NaN | SP | BOITUVA | PMDB | Prefeito | PAULO HENRRIQUE PEREIRA | 15 | 15 | 200.0 | Recursos de pessoas físicas | NaN | Estimado |
20 | 250000029177 | NaN | SP | BOITUVA | PMDB | Prefeito | PAULO HENRRIQUE PEREIRA | 15 | 15 | 100.0 | Recursos de pessoas físicas | NaN | Estimado |
21 | 250000029177 | NaN | SP | BOITUVA | PMDB | Prefeito | LUIZ LYRIO TALLARICO JUNIOR | 15 | 15 | 300.0 | Recursos de pessoas físicas | NaN | Estimado |
22 | 250000029177 | NaN | SP | BOITUVA | PMDB | Prefeito | LUCIANO DE LIMA E SILVA | 15 | 15 | 800.0 | Recursos de pessoas físicas | NaN | Estimado |
23 | 250000029177 | NaN | SP | BOITUVA | PMDB | Prefeito | SILVAN RENOSTO | 15 | 15 | 1000.0 | Recursos próprios | NaN | Transferência eletrônica |
24 | 250000029177 | NaN | SP | BOITUVA | PMDB | Prefeito | SILVAN RENOSTO | 15 | 15 | 500.0 | Recursos próprios | NaN | Transferência eletrônica |
25 | 250000072494 | NaN | SP | BILAC | PSDB | Vereador | OCIMAR RODRIGUES VIEIRA | 45 | 45111 | 300.0 | Recursos próprios | NaN | Depósito em espécie |
26 | 250000072494 | NaN | SP | BILAC | PSDB | Vereador | OCIMAR RODRIGUES VIEIRA | 45 | 45111 | 1000.0 | Recursos próprios | NaN | Estimado |
27 | 250000072494 | NaN | SP | BILAC | PSDB | Vereador | ELIANA PALMIERI | 45 | 45111 | 30.0 | Recursos de pessoas físicas | NaN | Transferência eletrônica |
28 | 250000072494 | NaN | SP | BILAC | PSDB | Vereador | ELIANA PALMIERI | 45 | 45111 | 215.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
29 | 250000072494 | NaN | SP | BILAC | PSDB | Vereador | ELEIÇÃO 2016 VITOR OSMAR BOTINI PREFEITO | 45 | 45111 | 90.0 | Recursos de outros candidatos | NaN | Estimado |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
1867360 | 210000004025 | NaN | RS | CANOAS | PT | Vereador | ELISE DOS SANTOS VARGAS | 13 | 13777 | 1000.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
1867361 | 210000004025 | NaN | RS | CANOAS | PT | Vereador | MARCIA SALETE DA SILVA | 13 | 13777 | 1000.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
1867362 | 210000004025 | NaN | RS | CANOAS | PT | Vereador | CARMEM HELOISA DA SILVA | 13 | 13777 | 1000.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
1867363 | 210000004025 | NaN | RS | CANOAS | PT | Vereador | JUCEILA LOURDES DALL AGNOL DE LACERDA | 13 | 13777 | 3000.0 | Recursos de pessoas físicas | NaN | Estimado |
1867364 | 210000004025 | NaN | RS | CANOAS | PT | Vereador | FABULO NASCIMENTO DA ROSA | 13 | 13777 | 1000.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
1867365 | 210000004025 | NaN | RS | CANOAS | PT | Vereador | FABULO NASCIMENTO DA ROSA | 13 | 13777 | 1000.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
1867366 | 210000004025 | NaN | RS | CANOAS | PT | Vereador | JULIO CEZAR DA SILVA SANTOS | 13 | 13777 | 1000.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
1867367 | 210000004025 | NaN | RS | CANOAS | PT | Vereador | JULIO CEZAR DA SILVA SANTOS | 13 | 13777 | 1000.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
1867368 | 210000004025 | NaN | RS | CANOAS | PT | Vereador | MATHEUS FELIPE TEIXEIRA MACHADO | 13 | 13777 | 1000.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
1867369 | 210000004025 | NaN | RS | CANOAS | PT | Vereador | ELIANA MACHADO NASCIMENTO | 13 | 13777 | 1000.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
1867370 | 210000004025 | NaN | RS | CANOAS | PT | Vereador | JERUSA FONFONKA MACHADO | 13 | 13777 | 1000.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
1867371 | 210000004025 | NaN | RS | CANOAS | PT | Vereador | ROGERIO DA SILVA AMBIEDA | 13 | 13777 | 1000.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
1867372 | 210000004025 | NaN | RS | CANOAS | PT | Vereador | LUIZ ANTONIO VIEIRA INDA | 13 | 13777 | 1500.0 | Recursos de pessoas físicas | NaN | Estimado |
1867373 | 210000004025 | NaN | RS | CANOAS | PT | Vereador | LUCIANA NOBREGA VIEIRA | 13 | 13777 | 10000.0 | Recursos de pessoas físicas | NaN | Transferência eletrônica |
1867374 | 260000006834 | NaN | SE | ARAUÁ | PROS | Vereador | VALTER SANTOS MEDEIROS | 90 | 90123 | 450.0 | Recursos próprios | NaN | Depósito em espécie |
1867375 | 260000006834 | NaN | SE | ARAUÁ | PROS | Vereador | JOSE VANDERLEY DA CRUZ | 90 | 90123 | 200.0 | Recursos de pessoas físicas | NaN | Estimado |
1867376 | 130000003834 | NaN | MG | JOSÉ RAYDAN | PV | Vereador | VAGNER BENEVIDES TEMPONI | 43 | 43666 | 4950.0 | Recursos próprios | NaN | Transferência eletrônica |
1867377 | 130000003834 | NaN | MG | JOSÉ RAYDAN | PV | Vereador | VAGNER BENEVIDES TEMPONI | 43 | 43666 | 1000.0 | Recursos próprios | NaN | Estimado |
1867378 | 130000003834 | NaN | MG | JOSÉ RAYDAN | PV | Vereador | NILSON PEREIRA PINTO | 43 | 43666 | 100.0 | Recursos de pessoas físicas | NaN | Estimado |
1867379 | 130000003834 | NaN | MG | JOSÉ RAYDAN | PV | Vereador | FRANK ROBERT ALVES FERREIRA | 43 | 43666 | 100.0 | Recursos de pessoas físicas | NaN | Estimado |
1867380 | 130000003834 | NaN | MG | JOSÉ RAYDAN | PV | Vereador | JULIANA ALVES DA SILVA | 43 | 43666 | 200.0 | Recursos de pessoas físicas | NaN | Estimado |
1867381 | 170000009990 | NaN | PE | GLÓRIA DO GOITÁ | DEM | Vereador | JOSÉ KAIO FELIPE NERY | 25 | 25555 | 320.0 | Recursos próprios | NaN | Depósito em espécie |
1867382 | 170000009990 | NaN | PE | GLÓRIA DO GOITÁ | DEM | Vereador | AMANDA ELIZABETTE NERY CAMPOS | 25 | 25555 | 800.0 | Recursos de pessoas físicas | NaN | Estimado |
1867383 | 170000009990 | NaN | PE | GLÓRIA DO GOITÁ | DEM | Vereador | AMANDA ELIZABETTE NERY CAMPOS | 25 | 25555 | 650.0 | Recursos de pessoas físicas | NaN | Depósito em espécie |
1867384 | 170000009990 | NaN | PE | GLÓRIA DO GOITÁ | DEM | Vereador | MARTA LOURDES DA SILVA | 25 | 25555 | 883.8 | Recursos de pessoas físicas | NaN | Estimado |
1867385 | 170000009990 | NaN | PE | GLÓRIA DO GOITÁ | DEM | Vereador | Direção Municipal/Comissão Provisória | 25 | 25555 | 70.0 | Recursos de partido político | NaN | Estimado |
1867386 | 170000009990 | NaN | PE | GLÓRIA DO GOITÁ | DEM | Vereador | Direção Municipal/Comissão Provisória | 25 | 25555 | 70.0 | Recursos de partido político | NaN | Estimado |
1867387 | 170000009990 | NaN | PE | GLÓRIA DO GOITÁ | DEM | Vereador | Direção Municipal/Comissão Provisória | 25 | 25555 | 50.0 | Recursos de partido político | NaN | Estimado |
1867388 | 160000008858 | NaN | PR | CAPANEMA | PMDB | Vereador | ROQUE OSMAR POMPERMAIER | 15 | 15123 | 500.0 | Recursos próprios | NaN | Depósito em espécie |
1867389 | 160000008858 | NaN | PR | CAPANEMA | PMDB | Vereador | ROQUE OSMAR POMPERMAIER | 15 | 15123 | 150.0 | Recursos próprios | NaN | Depósito em espécie |
1867390 rows × 13 columns
Agora vamos salvar a base para um arquivo CSV usando a função "to_csv" do Pandas:
base_cortada.to_csv("receitas_GN.csv", encoding="utf-8")
Agora que temos a base que precisamos para fazer as análises, precisamos buscar o sexo de todos os candidatos.
Vamos usar a coluna "Sequencial Candidato" na base que acabamos de criar e vamos compará-la com uma coluna de mesmo nome na base "consulta_cand_2016_brasil.txt".
Essa base foi criada unindo todos os arquivos TXT do TSE com um simples comando no terminal:
cat *.txt > consulta_cand_2016_brasil.csv
Você pode renomear depois para .txt (como abaixo) ou deixar .csv mesmo. Agora basta criarmos um novo DataFrame com a base que acabamos de definir:
candidatos = pd.read_csv(
'data/consulta_cand_2016_brasil.txt',
delimiter=";",
decimal=",",
encoding="latin1",
header=None,
low_memory=False)
candidatos.columns
Int64Index([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45],
dtype='int64')
Como percebemos acima, o arquivo de candidaturas não possui cabeçalho. Foi por isso que um dos parâmetros na hora de importar o arquivo foi "header=None
".
Com isso, o Pandas nomeou em sequência as colunas do 0 até o 45, totalizando 46 colunas.
Para a consulta de sexo dos candidados vamos renomear as colunas 10, 11 e 30. Assim, criaremos uma nova base apenas com os nomes, o número sequencial e o sexo dos candidatos. Vamos usar essa base para acrescentar a informação de sexo na nossa tabela de doações:
candidatos.rename(columns={10: "Nome Candidato", 11:"Sequencial Candidato", 30:"Sexo"}, inplace=True)
candidatos_sexo = pd.DataFrame(candidatos, columns=["Sequencial Candidato", "Nome Candidato", "Sexo"])
candidatos_sexo
Sequencial Candidato | Nome Candidato | Sexo | |
---|---|---|---|
0 | 10000000924 | MARIA DAS GRAÇAS LIMA FERREIRA | FEMININO |
1 | 10000000792 | MARIA AUXILIADORA DIAS | FEMININO |
2 | 10000000941 | MAMED DANKAR NETO | MASCULINO |
3 | 10000003498 | JUCIANE DA SILVA PEIXOTO | FEMININO |
4 | 10000000953 | FRANCISCO RODRIGUES DOS SANTOS | MASCULINO |
5 | 10000000965 | DANIEL RIBEIRO DE MOURA | MASCULINO |
6 | 10000000889 | CLERTON GASPAR DE SOUZA | MASCULINO |
7 | 10000000893 | ANDRÉ LUIZ MELHORANÇA FILHO | MASCULINO |
8 | 10000000897 | MARIA MARCELA MESSIAS DE MELO | FEMININO |
9 | 10000002682 | DOMINGOS SAVIO MOREIRA DE ANDRADE | MASCULINO |
10 | 10000000906 | JOAREZ GOMES BEZERRA | MASCULINO |
11 | 10000000910 | ELISANGELA MARIA GOMES DA SILVA | FEMININO |
12 | 10000000922 | MARCUS ALEXANDRE MÉDICI AGUIAR VIANA DA SILVA | MASCULINO |
13 | 10000000933 | ANTONIO LIRA DE MORAIS | MASCULINO |
14 | 10000001061 | ABÍLIO RODRIGUES BARBOSA NETO | MASCULINO |
15 | 10000003504 | DAMIAO DA SILVA NASCIMENTO | MASCULINO |
16 | 10000001071 | LAEZIO FERREIRA DE ALMEIDA | MASCULINO |
17 | 10000001362 | PATRÍCIA BATISTA SCHILLING | FEMININO |
18 | 10000001078 | MARTA REGINA MARQUES DA SILVA | FEMININO |
19 | 10000001079 | JOSÉ BONFIM DE OLIVEIRA AMORIM | MASCULINO |
20 | 10000001083 | SEBASTIÃO BENICIO DE SOUZA | MASCULINO |
21 | 10000001091 | EDINEIA CANDIDA BERTO | FEMININO |
22 | 10000001097 | VALDECIR DE LIMA | MASCULINO |
23 | 10000001100 | MARCIANO BEZERRA DA SILVA | MASCULINO |
24 | 10000001101 | VILSON DOS SANTOS | MASCULINO |
25 | 10000001102 | ROZENO DA SILVA MELO | MASCULINO |
26 | 10000003261 | LEIDA KULINA | FEMININO |
27 | 10000003262 | SALOMÃO JOSÉ DIAS MADJA | MASCULINO |
28 | 10000003465 | MANOEL NAGUILO GOMES DE AZEVEDO | MASCULINO |
29 | 10000001129 | MARIA DE NAZARÉ MARQUES DA SILVA | FEMININO |
... | ... | ... | ... |
497096 | 270000008880 | TOMAZ DA SILVA XAVIER | MASCULINO |
497097 | 270000007598 | JOSE AMERICO AQUINO DE SOUSA | MASCULINO |
497098 | 270000007599 | JAVAN QUIXABEIRA DE JESUS | MASCULINO |
497099 | 270000007613 | JOSE PAULINO LIMA DOS SANTOS | MASCULINO |
497100 | 270000009393 | FRANCO BARBOSA DE SOUSA | MASCULINO |
497101 | 270000009401 | JEANE DA SILVA SOUSA | FEMININO |
497102 | 270000005800 | LUZIANE ALVES RIBEIRO | FEMININO |
497103 | 270000005805 | ANTONIO CARLOS DE OLIVEIRA COSTA | MASCULINO |
497104 | 270000005499 | ARTUR DIAS BENTO | MASCULINO |
497105 | 270000005320 | ROSINALVA PEREIRA GOMES DE SOUSA | FEMININO |
497106 | 270000005351 | GENIVALDO NERES FREITAS | MASCULINO |
497107 | 270000006334 | ROGERIO TAVARES RODRIGUES DA COSTA | MASCULINO |
497108 | 270000006343 | MAURO JOSE RODRIGUES FRAGOSO | MASCULINO |
497109 | 270000009296 | NILZA RODRIGUES DE SOUZA | FEMININO |
497110 | 270000009043 | RAIMUNDO NONATO GOMES DOS SANTOS | MASCULINO |
497111 | 270000007451 | ELVI LEAO COSTA | MASCULINO |
497112 | 270000008044 | ANTONIA OZELIA DA SILVA | FEMININO |
497113 | 270000008063 | MAYANE RODRIGUES BEZERRA | FEMININO |
497114 | 270000005075 | DORECINO BARBOSA CIRQUEIRA | MASCULINO |
497115 | 270000004675 | FRANCIANE CARNEIRO DE SOUZA | FEMININO |
497116 | 270000001987 | FRANCISCA AUDEIDE RODRIGUES DO NASCIMENTO | FEMININO |
497117 | 270000005891 | NATANAEL DOS SANTOS MACEDO | MASCULINO |
497118 | 270000006906 | JOÃO ALBERTO COELHO MACHADO | MASCULINO |
497119 | 270000006909 | MARCOS AURÉLIO SUWATE XERENTE | MASCULINO |
497120 | 270000006924 | SUELENE LUSTOSA MATOS | FEMININO |
497121 | 270000006927 | MARIA DO SOCORRO LUSTOSA DE SOUSA | FEMININO |
497122 | 270000006933 | NEURAN RIBEIRO GUIMARÃES | MASCULINO |
497123 | 270000008097 | PATRICIA PIMENTEL HENRIQUE | FEMININO |
497124 | 270000007944 | GILSON ALVES ZIELINSKI | MASCULINO |
497125 | 270000010291 | JOAOZINEI FRANCISCO DA ROCHA | MASCULINO |
497126 rows × 3 columns
Vamos salvar uma cópia desse arquivo no formato CSV. Assim você pode importar para o seu processador de planilhas favorito.
candidatos_sexo.to_csv("consulta_cand_2016_sexo.csv", encoding="utf-8")
Vamos unir as duas tabelas usando a coluna que elas possuem em comum: Sequencial Candidato
. À esquerda, vamos usar a nossa base cortada, à direita a base de candidatos com o sexo. O ponto de união das duas bases será a coluna Sequencial Candidato
.
O Pandas já faz o trabalho pra gente: onde o número sequencial na tabela com os sexos for X, por exemplo, ele vai acrescentar o valor do sexo automaticamente. Funciona como um VLOOKUP/PROCV ou index/match:
left = base_cortada
right = candidatos_sexo
merge = pd.merge(left,right, on="Sequencial Candidato")
Os valores de doação para prefeitos e vereadores são muito diferentes.
Vamos criar uma base apenas com os cargos de prefeito e outra apenas com vereadores:
merge_filtrado = merge[merge['Tipo receita'] == u"Recursos de partido político"]
prefeitos = merge_filtrado[merge_filtrado['Cargo'] == u"Prefeito"]
vereadores = merge_filtrado[merge_filtrado['Cargo'] == u"Vereador"]
Agora geramos duas tabelas dinâmicas com os valores agregados.
Nesse caso, queremos saber quanto os partidos doaram para mulheres e homens em cada localidade e quantas mulheres e homens estavam concorrendo em cada cidade.
tabela_final_prefeitos = prefeitos.pivot_table(index=[u'Número partido doador',
u'UF',
u'Nome da UE'],
columns=[u'Sexo'],
values=['Valor receita', "Sequencial Candidato"],
aggfunc=[sum, pd.Series.nunique])
tabela_final_vereadores = vereadores.pivot_table(index=[u'Número partido doador',
u'UF',
u'Nome da UE'],
columns=[u'Sexo'],
values=['Valor receita', "Sequencial Candidato"],
aggfunc=[sum, pd.Series.nunique])
tabela_final_prefeitos
sum | nunique | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Valor receita | Sequencial Candidato | Valor receita | Sequencial Candidato | |||||||
Sexo | FEMININO | MASCULINO | FEMININO | MASCULINO | FEMININO | MASCULINO | FEMININO | MASCULINO | ||
Número partido doador | UF | Nome da UE | ||||||||
10 | AC | ACRELÂNDIA | 55394.00 | NaN | 6.000001e+10 | NaN | 6.0 | NaN | 1.0 | NaN |
SENADOR GUIOMARD | NaN | 38058.00 | NaN | 9.000002e+10 | NaN | 9.0 | NaN | 1.0 | ||
AM | MANAUS | NaN | 1060000.00 | NaN | 1.200000e+11 | NaN | 2.0 | NaN | 1.0 | |
AP | MACAPÁ | 905000.00 | NaN | 1.500000e+11 | NaN | 4.0 | NaN | 1.0 | NaN | |
BA | AMÉLIA RODRIGUES | NaN | 6478.50 | NaN | 2.500000e+11 | NaN | 5.0 | NaN | 1.0 | |
LAJEDO DO TABOCAL | NaN | 20350.00 | NaN | 1.500000e+11 | NaN | 2.0 | NaN | 1.0 | ||
CE | FORTALEZA | NaN | 777000.00 | NaN | 2.400000e+11 | NaN | 3.0 | NaN | 1.0 | |
GO | MONTE ALEGRE DE GOIÁS | NaN | 5000.00 | NaN | 9.000000e+10 | NaN | 1.0 | NaN | 1.0 | |
NOVO GAMA | NaN | 145000.00 | NaN | 4.500001e+11 | NaN | 5.0 | NaN | 1.0 | ||
PORANGATU | NaN | 10000.00 | NaN | 9.000000e+10 | NaN | 1.0 | NaN | 1.0 | ||
RUBIATABA | NaN | 30000.00 | NaN | 1.800000e+11 | NaN | 2.0 | NaN | 1.0 | ||
SÃO SIMÃO | NaN | 5000.00 | NaN | 9.000001e+10 | NaN | 1.0 | NaN | 1.0 | ||
MA | ARAIOSES | NaN | 10000.00 | NaN | 1.000000e+11 | NaN | 1.0 | NaN | 1.0 | |
BURITICUPU | NaN | 10594.00 | NaN | 1.300000e+12 | NaN | 13.0 | NaN | 1.0 | ||
CAXIAS | NaN | 215000.00 | NaN | 3.000000e+11 | NaN | 3.0 | NaN | 1.0 | ||
CHAPADINHA | 38000.00 | NaN | 2.000000e+11 | NaN | 2.0 | NaN | 1.0 | NaN | ||
GODOFREDO VIANA | 2300.00 | NaN | 1.300000e+12 | NaN | 3.0 | NaN | 1.0 | NaN | ||
GOVERNADOR NEWTON BELLO | NaN | 20000.00 | NaN | 1.000000e+11 | NaN | 1.0 | NaN | 1.0 | ||
LAGO DA PEDRA | NaN | 10000.00 | NaN | 1.000000e+11 | NaN | 1.0 | NaN | 1.0 | ||
NINA RODRIGUES | NaN | 10000.00 | NaN | 1.000000e+11 | NaN | 1.0 | NaN | 1.0 | ||
PAÇO DO LUMIAR | NaN | 20000.00 | NaN | 2.000000e+11 | NaN | 1.0 | NaN | 1.0 | ||
PIRAPEMAS | NaN | 10000.00 | NaN | 1.000000e+11 | NaN | 1.0 | NaN | 1.0 | ||
PRIMEIRA CRUZ | NaN | 10000.00 | NaN | 1.000000e+11 | NaN | 1.0 | NaN | 1.0 | ||
RAPOSA | 30000.00 | NaN | 2.000000e+11 | NaN | 1.0 | NaN | 1.0 | NaN | ||
SÃO VICENTE FERRER | NaN | 10000.00 | NaN | 1.000000e+11 | NaN | 1.0 | NaN | 1.0 | ||
TIMBIRAS | NaN | 20000.00 | NaN | 2.000000e+11 | NaN | 1.0 | NaN | 1.0 | ||
MG | ABRE CAMPO | NaN | 5000.00 | NaN | 1.300000e+11 | NaN | 1.0 | NaN | 1.0 | |
BAMBUÍ | NaN | 403.45 | NaN | 1.300001e+11 | NaN | 1.0 | NaN | 1.0 | ||
BANDEIRA | NaN | 52.00 | NaN | 1.300000e+11 | NaN | 1.0 | NaN | 1.0 | ||
CACHOEIRA DE MINAS | NaN | 104.00 | NaN | 1.300000e+11 | NaN | 1.0 | NaN | 1.0 | ||
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
90 | GO | SÍTIO D'ABADIA | NaN | 1240.46 | NaN | 6.300001e+11 | NaN | 6.0 | NaN | 1.0 |
ÁGUA FRIA DE GOIÁS | NaN | 21152.01 | NaN | 3.600000e+11 | NaN | 4.0 | NaN | 1.0 | ||
MG | ANDRADAS | 10980.02 | NaN | 1.170001e+12 | NaN | 8.0 | NaN | 1.0 | NaN | |
BELO HORIZONTE | NaN | 120000.00 | NaN | 2.600002e+11 | NaN | 2.0 | NaN | 1.0 | ||
DIVINÓPOLIS | NaN | 65000.00 | NaN | 2.600002e+11 | NaN | 2.0 | NaN | 1.0 | ||
LUISBURGO | NaN | 5000.00 | NaN | 1.300001e+11 | NaN | 1.0 | NaN | 1.0 | ||
PARAOPEBA | NaN | 17969.68 | NaN | 9.100002e+11 | NaN | 6.0 | NaN | 1.0 | ||
RAUL SOARES | 5000.00 | NaN | 1.300000e+11 | NaN | 1.0 | NaN | 1.0 | NaN | ||
SANTA MARIA DE ITABIRA | NaN | 3000.00 | NaN | 3.900002e+11 | NaN | 3.0 | NaN | 1.0 | ||
PE | RIO FORMOSO | NaN | 47200.00 | NaN | 1.700000e+11 | NaN | 1.0 | NaN | 1.0 | |
PI | CRISTINO CASTRO | 10000.00 | NaN | 1.800000e+11 | NaN | 1.0 | NaN | 1.0 | NaN | |
SÃO GONÇALO DO GURGUÉIA | NaN | 689.50 | NaN | 3.600000e+11 | NaN | 2.0 | NaN | 1.0 | ||
SÃO JOÃO DO PIAUÍ | NaN | 20000.00 | NaN | 1.800000e+11 | NaN | 1.0 | NaN | 1.0 | ||
PR | CAFELÂNDIA | NaN | 768.00 | NaN | 1.600000e+11 | NaN | 1.0 | NaN | 1.0 | |
CAMBIRA | NaN | 331.85 | NaN | 3.200000e+11 | NaN | 2.0 | NaN | 1.0 | ||
CATANDUVAS | NaN | 55.41 | NaN | 1.600000e+11 | NaN | 1.0 | NaN | 1.0 | ||
CRUZEIRO DO OESTE | 456.60 | NaN | 3.200000e+11 | NaN | 2.0 | NaN | 1.0 | NaN | ||
FOZ DO IGUAÇU | NaN | 60000.00 | NaN | 1.600000e+11 | NaN | 1.0 | NaN | 1.0 | ||
IMBAÚ | NaN | 454.80 | NaN | 3.200000e+11 | NaN | 2.0 | NaN | 1.0 | ||
MARECHAL CÂNDIDO RONDON | NaN | 400.50 | NaN | 3.200000e+11 | NaN | 2.0 | NaN | 1.0 | ||
REBOUÇAS | NaN | 8900.00 | NaN | 4.480000e+12 | NaN | 5.0 | NaN | 1.0 | ||
RIBEIRÃO DO PINHAL | NaN | 345.00 | NaN | 1.600000e+11 | NaN | 1.0 | NaN | 1.0 | ||
RONDON | NaN | 1775.00 | NaN | 3.200000e+11 | NaN | 2.0 | NaN | 1.0 | ||
TELÊMACO BORBA | NaN | 6469.30 | NaN | 8.000002e+11 | NaN | 5.0 | NaN | 1.0 | ||
VERA CRUZ DO OESTE | NaN | 1595.00 | NaN | 6.400000e+11 | NaN | 3.0 | NaN | 1.0 | ||
VERÊ | NaN | 3741.25 | NaN | 4.800000e+11 | NaN | 3.0 | NaN | 1.0 | ||
RO | OURO PRETO DO OESTE | 35000.00 | NaN | 6.600000e+11 | NaN | 2.0 | NaN | 1.0 | NaN | |
RS | PELOTAS | NaN | 1751.00 | NaN | 6.300001e+11 | NaN | 3.0 | NaN | 1.0 | |
SP | JARINU | 2150.00 | NaN | 2.500001e+11 | NaN | 1.0 | NaN | 1.0 | NaN | |
MOCOCA | NaN | 3508.00 | NaN | 1.000000e+12 | NaN | 4.0 | NaN | 1.0 |
5606 rows × 8 columns
tabela_final_prefeitos.to_csv("tabela_final_prefeitos.csv", encoding="utf-8")
tabela_final_vereadores.to_csv("tabela_final_vereadores.csv", encoding="utf-8")
Também queremos saber quais foram os valores máximos doados por cada partido em cada um dos cargos.
Geramos outra tabela dinâmica, assim:
maximos_prefeitos = prefeitos.pivot_table(index=[u'Número partido doador'],
values=['Valor receita'],
columns=["Sexo"],
aggfunc=max)
maximos_vereadores = vereadores.pivot_table(index=[u'Número partido doador'],
values=['Valor receita'],
columns=["Sexo"],
aggfunc=max)
maximos_prefeitos.to_csv("maximos_prefeitos.csv", encoding = "utf-8")
maximos_vereadores.to_csv("maximos_vereadores.csv", encoding = "utf-8")
maximos_vereadores
Valor receita | ||
---|---|---|
Sexo | FEMININO | MASCULINO |
Número partido doador | ||
10 | 30000.00 | 50000.0 |
11 | 90000.00 | 100000.0 |
12 | 22500.00 | 50000.0 |
13 | 200000.00 | 200000.0 |
14 | 150000.00 | 100000.0 |
15 | 50000.00 | 100000.0 |
16 | 4071.94 | 20000.0 |
17 | 22000.00 | 100000.0 |
18 | 2204.00 | 9000.0 |
19 | 15000.00 | 300000.0 |
20 | 12000.00 | 100000.0 |
21 | 100.00 | 2400.0 |
22 | 133000.00 | 300000.0 |
23 | 50000.00 | 50000.0 |
25 | 300000.00 | 1000000.0 |
27 | 8000.00 | 200000.0 |
28 | 19950.00 | 25000.0 |
30 | 10000.00 | 21000.0 |
31 | 25000.00 | 50000.0 |
33 | 9000.00 | 47500.0 |
35 | 10000.00 | 59000.0 |
36 | 8530.00 | 21600.0 |
40 | 40000.00 | 100000.0 |
43 | 50000.00 | 25000.0 |
44 | 12000.00 | 50000.0 |
45 | 100000.00 | 100000.0 |
50 | 9600.00 | 50000.0 |
51 | 20000.00 | 139000.0 |
54 | 13600.00 | 40000.0 |
55 | 200000.00 | 200000.0 |
65 | 26818.75 | 38000.0 |
70 | 4000.00 | 50000.0 |
77 | 15000.00 | 50000.0 |
90 | 10000.00 | 80000.0 |
Ainda é possível fazer muitas análises com essa base! Estamos só começando.
Se você gostaria de fazer algum comentário ou sugestão, entre em contato com a gente no contato@generonumero.media