In [50]:
import pandas as pd
import datetime
import matplotlib.pyplot as plt
%matplotlib inline
import datetime

In [29]:
df = pd.read_csv(
    '/Users/guilhermefelitti/Dropbox/TSE/prestacao_contas_2016/despesas_candidatos_2016_SP.txt',
    encoding='iso-8859-1', sep=';', decimal=',', thousands='.',usecols=['Nome candidato', 'Sequencial Candidato','Nome do fornecedor',
             'CPF/CNPJ do fornecedor','Setor econômico do fornecedor','Valor despesa', 
             'Tipo despesa', 'Descriçao da despesa']
    
)


/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/IPython/core/interactiveshell.py:2717: DtypeWarning: Columns (16) have mixed types. Specify dtype option on import or set low_memory=False.
  interactivity=interactivity, compiler=compiler, result=result)

In [30]:
pd.to_numeric(df['Valor despesa'])
df = df.rename(columns={'Valor despesa': 'VALOR'})

In [31]:
councilman = pd.read_csv('sequential_id.csv')
secreataries = pd.read_csv('secretary-councilman.csv')

# sequencial dos vereadores de são paulo
sequencial = councilman.sequential_id.tolist()
sequencial.extend(secreataries.sequential_id.tolist())

In [32]:
gastos = df[df['Sequencial Candidato'].isin(sequencial)]

In [33]:
gastos_campanha = gastos.rename(columns={
    'Nome candidato': 'candidate',
    'Sequencial Candidato': 'sequential_id', 
    'Nome do fornecedor': 'provider', 
    'CPF/CNPJ do fornecedor': 'cnpj',
    'Setor econômico do fornecedor': 'economic_sector', 
    'VALOR': 'value', 
    'Tipo despesa': 'kind',
    'Descriçao da despesa': 'description' 
})

In [10]:
gastos_campanha = gastos_campanha.drop(['candidate'], axis=1)

In [17]:
gastos_campanha.groupby(['sequential_id', 'kind']).sum().sort_values(by='value', ascending=False)


Out[17]:
value
sequential_id kind
250000020852 Publicidade por materiais impressos 427484.73
250000011022 Publicidade por materiais impressos 287810.41
250000004992 Despesas com pessoal 247293.00
250000022075 Despesas com pessoal 219450.00
250000020813 Despesas com pessoal 216129.19
250000005003 Despesas com pessoal 201696.59
250000004992 Publicidade por materiais impressos 183645.72
250000022100 Despesas com pessoal 181670.00
250000011022 Atividades de militância e mobilização de rua 169390.01
250000020852 Despesas com pessoal 164225.00
250000020825 Publicidade por materiais impressos 152141.00
250000011013 Despesas com pessoal 145800.00
Publicidade por materiais impressos 145444.00
250000022075 Publicidade por materiais impressos 125938.60
250000020813 Publicidade por materiais impressos 124743.83
250000004981 Despesas com pessoal 120563.93
250000005003 Publicidade por materiais impressos 107425.08
250000022098 Publicidade por materiais impressos 102762.00
250000022114 Correspondências e despesas postais 101489.84
250000020837 Atividades de militância e mobilização de rua 96300.00
250000010999 Publicidade por adesivos 93950.00
250000022081 Serviços prestados por terceiros 92340.00
250000010992 Despesas com pessoal 90971.58
250000020852 Cessão ou locação de veículos 85735.00
250000011625 Correspondências e despesas postais 79874.45
250000004986 Publicidade por materiais impressos 78950.00
250000014868 Publicidade por materiais impressos 78210.00
250000020837 Publicidade por materiais impressos 77304.41
250000010857 Serviços próprios prestados por terceiros 74002.00
250000011016 Publicidade por materiais impressos 73640.00
... ... ...
250000004989 Alimentação 70.05
250000020854 Encargos financeiros, taxas bancárias e/ou op. cartão de crédito 69.60
250000008375 Encargos financeiros, taxas bancárias e/ou op. cartão de crédito 69.60
250000011011 Encargos financeiros, taxas bancárias e/ou op. cartão de crédito 64.40
250000011027 Encargos financeiros, taxas bancárias e/ou op. cartão de crédito 62.10
250000022098 Telefone 60.49
250000004982 Telefone 59.30
250000004981 Água 53.70
250000014868 Combustíveis e lubrificantes 51.01
250000010863 Criação e inclusão de páginas na internet 44.90
250000022086 Baixa de Estimaveis - Telefone 41.25
250000004986 Encargos financeiros, taxas bancárias e/ou op. cartão de crédito 40.60
250000004982 Encargos financeiros, taxas bancárias e/ou op. cartão de crédito 39.80
250000005006 Encargos financeiros, taxas bancárias e/ou op. cartão de crédito 31.90
250000004989 Encargos financeiros, taxas bancárias e/ou op. cartão de crédito 30.10
250000004995 Criação e inclusão de páginas na internet 30.00
250000011624 Alimentação 30.00
250000005006 Despesas com Hospedagem 30.00
250000011624 Encargos financeiros, taxas bancárias e/ou op. cartão de crédito 23.20
250000019125 Encargos financeiros, taxas bancárias e/ou op. cartão de crédito 20.70
250000011018 Encargos financeiros, taxas bancárias e/ou op. cartão de crédito 18.80
250000020852 Telefone 15.60
250000022137 Encargos financeiros, taxas bancárias e/ou op. cartão de crédito 14.70
250000004992 Telefone 13.27
250000014885 Encargos financeiros, taxas bancárias e/ou op. cartão de crédito 12.95
250000004984 Encargos financeiros, taxas bancárias e/ou op. cartão de crédito 12.95
250000010863 Encargos financeiros, taxas bancárias e/ou op. cartão de crédito 11.60
250000022086 Telefone 10.00
250000008366 Encargos financeiros, taxas bancárias e/ou op. cartão de crédito 9.20
250000022124 Impostos, contribuições e taxas 0.10

567 rows × 1 columns


In [48]:
by_sequencial_kind = gastos_campanha.groupby(['sequential_id', 'kind']).sum()

In [54]:
today = datetime.date.today()
by_sequencial_kind.to_csv(f"../data/{today}-election_expenses.csv", index=False)


  File "<ipython-input-54-b6583329d160>", line 2
    by_sequencial_kind.to_csv(f"{today}-election_expenses.csv", index=False)
                                                             ^
SyntaxError: invalid syntax

In [ ]: