Skip to content

Instantly share code, notes, and snippets.

@cuducos
Last active January 3, 2020 21:11
Show Gist options
  • Save cuducos/1ab59c9080f93f9aa30ec38b732cd3c0 to your computer and use it in GitHub Desktop.
Save cuducos/1ab59c9080f93f9aa30ec38b732cd3c0 to your computer and use it in GitHub Desktop.
Cartões Corporativos
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Análise de gastos do cartão corportativo do planalto"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Collecting git+https://github.com/cuducos/calculadora-do-cidadao.git\n",
" Cloning https://github.com/cuducos/calculadora-do-cidadao.git to c:\\users\\wb534694\\appdata\\local\\temp\\pip-req-build-zjrac783\n",
"Requirement already satisfied (use --upgrade to upgrade): calculadora-do-cidadao==0.0.1 from git+https://github.com/cuducos/calculadora-do-cidadao.git in c:\\programdata\\anaconda3\\lib\\site-packages\n",
"Requirement already satisfied: aiohttp>=3.6.2 in c:\\programdata\\anaconda3\\lib\\site-packages (from calculadora-do-cidadao==0.0.1) (3.6.2)\n",
"Requirement already satisfied: beautifulsoup4>=4.8.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from calculadora-do-cidadao==0.0.1) (4.8.0)\n",
"Requirement already satisfied: requests>=2.22.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from calculadora-do-cidadao==0.0.1) (2.22.0)\n",
"Requirement already satisfied: chardet<4.0,>=2.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from aiohttp>=3.6.2->calculadora-do-cidadao==0.0.1) (3.0.4)\n",
"Requirement already satisfied: multidict<5.0,>=4.5 in c:\\programdata\\anaconda3\\lib\\site-packages (from aiohttp>=3.6.2->calculadora-do-cidadao==0.0.1) (4.7.2)\n",
"Requirement already satisfied: async-timeout<4.0,>=3.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from aiohttp>=3.6.2->calculadora-do-cidadao==0.0.1) (3.0.1)\n",
"Requirement already satisfied: yarl<2.0,>=1.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from aiohttp>=3.6.2->calculadora-do-cidadao==0.0.1) (1.4.2)\n",
"Requirement already satisfied: attrs>=17.3.0 in c:\\programdata\\anaconda3\\lib\\site-packages (from aiohttp>=3.6.2->calculadora-do-cidadao==0.0.1) (19.2.0)\n",
"Requirement already satisfied: soupsieve>=1.2 in c:\\programdata\\anaconda3\\lib\\site-packages (from beautifulsoup4>=4.8.0->calculadora-do-cidadao==0.0.1) (1.9.3)\n",
"Requirement already satisfied: certifi>=2017.4.17 in c:\\programdata\\anaconda3\\lib\\site-packages (from requests>=2.22.0->calculadora-do-cidadao==0.0.1) (2019.9.11)\n",
"Requirement already satisfied: idna<2.9,>=2.5 in c:\\programdata\\anaconda3\\lib\\site-packages (from requests>=2.22.0->calculadora-do-cidadao==0.0.1) (2.8)\n",
"Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\\programdata\\anaconda3\\lib\\site-packages (from requests>=2.22.0->calculadora-do-cidadao==0.0.1) (1.24.2)\n",
"Building wheels for collected packages: calculadora-do-cidadao\n",
" Building wheel for calculadora-do-cidadao (setup.py): started\n",
" Building wheel for calculadora-do-cidadao (setup.py): finished with status 'done'\n",
" Created wheel for calculadora-do-cidadao: filename=calculadora_do_cidadao-0.0.1-cp37-none-any.whl size=15922 sha256=f643ac4e6e771b984adfda2a7adf083978160e452c8098b9bebe1b265897a054\n",
" Stored in directory: C:\\Users\\wb534694\\AppData\\Local\\Temp\\pip-ephem-wheel-cache-cvr3fx45\\wheels\\80\\ab\\6c\\b1a8ada892de83fe7362f4add516f5c92cb54f318baad40972\n",
"Successfully built calculadora-do-cidadao\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" Running command git clone -q https://github.com/cuducos/calculadora-do-cidadao.git 'C:\\Users\\wb534694\\AppData\\Local\\Temp\\pip-req-build-zjrac783'\n"
]
}
],
"source": [
"!pip install git+https://github.com/cuducos/calculadora-do-cidadao.git"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from collections import namedtuple\n",
"from datetime import date, datetime\n",
"from pathlib import Path\n",
"from time import sleep\n",
"from urllib.request import HTTPError, urlretrieve\n",
"from zipfile import ZipFile\n",
"\n",
"import numpy as np\n",
"import pandas as pd\n",
"from calculadora_do_cidadao import CalculadoraDoCidadão\n",
"from tqdm import tqdm"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"Term = namedtuple('Term', 'name start end')\n",
"\n",
"DILMA = Term('Dilma', date(2011, 1, 1), date(2016, 5, 12))\n",
"TEMER = Term('Temer', date(2016, 5, 12), date(2019, 1, 1))\n",
"BOLSONARO = Term('Bolsonaro', date(2019, 1, 1), date.today())\n",
"\n",
"TERMS = (DILMA, TEMER, BOLSONARO)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Carregando os dados"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def urls():\n",
" \"\"\"Generates all the URL to download the data\"\"\"\n",
" today = date.today()\n",
" for year in range(2013, today.year + 1):\n",
" for month in range(1, 13):\n",
" if date(year, month, 1) > today:\n",
" continue\n",
" \n",
" month = str(month).zfill(2)\n",
" yield f\"http://www.portaltransparencia.gov.br/download-de-dados/cpgf/{year}{month}\""
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def load(url, **read_csv_kwargs):\n",
" \"\"\"Downloads the zip archive with data and load the first file in a Pandas DataFrame\"\"\"\n",
" directory = Path('data')\n",
" directory.mkdir(exist_ok=True)\n",
" \n",
" *_, filename = url.split(\"/\")\n",
" path = directory / f\"{filename}.zip\"\n",
" \n",
" if not path.exists():\n",
" try:\n",
" urlretrieve(url, filename=path)\n",
" except HTTPError: # 2020 data might not be available yet\n",
" return\n",
" \n",
" with ZipFile(path) as archive:\n",
" archive.extractall()\n",
" data, *_ = archive.namelist()\n",
" df = pd.read_csv(data, **read_csv_kwargs)\n",
"\n",
" for name in archive.namelist():\n",
" Path(name).unlink()\n",
"\n",
" return df"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 85/85 [00:11<00:00, 7.51it/s]\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>CÓDIGO ÓRGÃO SUPERIOR</th>\n",
" <th>NOME ÓRGÃO SUPERIOR</th>\n",
" <th>CÓDIGO ÓRGÃO</th>\n",
" <th>NOME ÓRGÃO</th>\n",
" <th>CÓDIGO UNIDADE GESTORA</th>\n",
" <th>NOME UNIDADE GESTORA</th>\n",
" <th>ANO EXTRATO</th>\n",
" <th>MÊS EXTRATO</th>\n",
" <th>CPF PORTADOR</th>\n",
" <th>NOME PORTADOR</th>\n",
" <th>CNPJ OU CPF FAVORECIDO</th>\n",
" <th>NOME FAVORECIDO</th>\n",
" <th>TRANSAÇÃO</th>\n",
" <th>DATA TRANSAÇÃO</th>\n",
" <th>VALOR TRANSAÇÃO</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União - Unidades com víncul...</td>\n",
" <td>110096</td>\n",
" <td>SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO</td>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>***.419.804-**</td>\n",
" <td>ULISSES ANTONIO CAVALCANTI BIONES</td>\n",
" <td>-2</td>\n",
" <td>NAO SE APLICA</td>\n",
" <td>SAQUE CASH/ATM BB</td>\n",
" <td>27/11/2012</td>\n",
" <td>120.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União - Unidades com víncul...</td>\n",
" <td>110096</td>\n",
" <td>SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO</td>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>***.541.564-**</td>\n",
" <td>FELLIPE JOSE DA ROCHA MUNT</td>\n",
" <td>-2</td>\n",
" <td>NAO SE APLICA</td>\n",
" <td>SAQUE CASH/ATM BB</td>\n",
" <td>06/12/2012</td>\n",
" <td>190.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União - Unidades com víncul...</td>\n",
" <td>110096</td>\n",
" <td>SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO</td>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>***.541.564-**</td>\n",
" <td>FELLIPE JOSE DA ROCHA MUNT</td>\n",
" <td>-2</td>\n",
" <td>NAO SE APLICA</td>\n",
" <td>SAQUE CASH/ATM BB</td>\n",
" <td>19/12/2012</td>\n",
" <td>70.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União - Unidades com víncul...</td>\n",
" <td>110096</td>\n",
" <td>SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO</td>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>***.804.561-**</td>\n",
" <td>JOSE DE JESUS</td>\n",
" <td>32782393000129</td>\n",
" <td>MOVIDROLAR LTDA</td>\n",
" <td>COMPRA A/V - R$ - APRES</td>\n",
" <td>27/11/2012</td>\n",
" <td>60.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União - Unidades com víncul...</td>\n",
" <td>110096</td>\n",
" <td>SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO</td>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>***.401.785-**</td>\n",
" <td>MARCELO DA SILVA CARUCA</td>\n",
" <td>4066259000196</td>\n",
" <td>MULTI UTILIDADES LTDA</td>\n",
" <td>COMPRA A/V - R$ - APRES</td>\n",
" <td>28/11/2012</td>\n",
" <td>84.4</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" CÓDIGO ÓRGÃO SUPERIOR NOME ÓRGÃO SUPERIOR CÓDIGO ÓRGÃO \\\n",
"0 63000 Advocacia-Geral da União 63000 \n",
"1 63000 Advocacia-Geral da União 63000 \n",
"2 63000 Advocacia-Geral da União 63000 \n",
"3 63000 Advocacia-Geral da União 63000 \n",
"4 63000 Advocacia-Geral da União 63000 \n",
"\n",
" NOME ÓRGÃO CÓDIGO UNIDADE GESTORA \\\n",
"0 Advocacia-Geral da União - Unidades com víncul... 110096 \n",
"1 Advocacia-Geral da União - Unidades com víncul... 110096 \n",
"2 Advocacia-Geral da União - Unidades com víncul... 110096 \n",
"3 Advocacia-Geral da União - Unidades com víncul... 110096 \n",
"4 Advocacia-Geral da União - Unidades com víncul... 110096 \n",
"\n",
" NOME UNIDADE GESTORA ANO EXTRATO MÊS EXTRATO \\\n",
"0 SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO 2013 1 \n",
"1 SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO 2013 1 \n",
"2 SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO 2013 1 \n",
"3 SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO 2013 1 \n",
"4 SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO 2013 1 \n",
"\n",
" CPF PORTADOR NOME PORTADOR CNPJ OU CPF FAVORECIDO \\\n",
"0 ***.419.804-** ULISSES ANTONIO CAVALCANTI BIONES -2 \n",
"1 ***.541.564-** FELLIPE JOSE DA ROCHA MUNT -2 \n",
"2 ***.541.564-** FELLIPE JOSE DA ROCHA MUNT -2 \n",
"3 ***.804.561-** JOSE DE JESUS 32782393000129 \n",
"4 ***.401.785-** MARCELO DA SILVA CARUCA 4066259000196 \n",
"\n",
" NOME FAVORECIDO TRANSAÇÃO DATA TRANSAÇÃO \\\n",
"0 NAO SE APLICA SAQUE CASH/ATM BB 27/11/2012 \n",
"1 NAO SE APLICA SAQUE CASH/ATM BB 06/12/2012 \n",
"2 NAO SE APLICA SAQUE CASH/ATM BB 19/12/2012 \n",
"3 MOVIDROLAR LTDA COMPRA A/V - R$ - APRES 27/11/2012 \n",
"4 MULTI UTILIDADES LTDA COMPRA A/V - R$ - APRES 28/11/2012 \n",
"\n",
" VALOR TRANSAÇÃO \n",
"0 120.0 \n",
"1 190.0 \n",
"2 70.0 \n",
"3 60.0 \n",
"4 84.4 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.concat(\n",
" load(url, encoding=\"cp1252\", delimiter=\";\", decimal=\",\")\n",
" for url in tqdm(tuple(urls()))\n",
")\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(1049848, 15)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.shape"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>CÓDIGO ÓRGÃO SUPERIOR</th>\n",
" <th>NOME ÓRGÃO SUPERIOR</th>\n",
" <th>CÓDIGO ÓRGÃO</th>\n",
" <th>NOME ÓRGÃO</th>\n",
" <th>CÓDIGO UNIDADE GESTORA</th>\n",
" <th>NOME UNIDADE GESTORA</th>\n",
" <th>ANO EXTRATO</th>\n",
" <th>MÊS EXTRATO</th>\n",
" <th>CPF PORTADOR</th>\n",
" <th>NOME PORTADOR</th>\n",
" <th>CNPJ OU CPF FAVORECIDO</th>\n",
" <th>NOME FAVORECIDO</th>\n",
" <th>TRANSAÇÃO</th>\n",
" <th>DATA TRANSAÇÃO</th>\n",
" <th>VALOR TRANSAÇÃO</th>\n",
" <th>expense_date</th>\n",
" <th>president</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União - Unidades com víncul...</td>\n",
" <td>110096</td>\n",
" <td>SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO</td>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>***.419.804-**</td>\n",
" <td>ULISSES ANTONIO CAVALCANTI BIONES</td>\n",
" <td>-2</td>\n",
" <td>NAO SE APLICA</td>\n",
" <td>SAQUE CASH/ATM BB</td>\n",
" <td>27/11/2012</td>\n",
" <td>120.0</td>\n",
" <td>2012-11-27</td>\n",
" <td>Dilma</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União - Unidades com víncul...</td>\n",
" <td>110096</td>\n",
" <td>SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO</td>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>***.541.564-**</td>\n",
" <td>FELLIPE JOSE DA ROCHA MUNT</td>\n",
" <td>-2</td>\n",
" <td>NAO SE APLICA</td>\n",
" <td>SAQUE CASH/ATM BB</td>\n",
" <td>06/12/2012</td>\n",
" <td>190.0</td>\n",
" <td>2012-12-06</td>\n",
" <td>Dilma</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União - Unidades com víncul...</td>\n",
" <td>110096</td>\n",
" <td>SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO</td>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>***.541.564-**</td>\n",
" <td>FELLIPE JOSE DA ROCHA MUNT</td>\n",
" <td>-2</td>\n",
" <td>NAO SE APLICA</td>\n",
" <td>SAQUE CASH/ATM BB</td>\n",
" <td>19/12/2012</td>\n",
" <td>70.0</td>\n",
" <td>2012-12-19</td>\n",
" <td>Dilma</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União - Unidades com víncul...</td>\n",
" <td>110096</td>\n",
" <td>SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO</td>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>***.804.561-**</td>\n",
" <td>JOSE DE JESUS</td>\n",
" <td>32782393000129</td>\n",
" <td>MOVIDROLAR LTDA</td>\n",
" <td>COMPRA A/V - R$ - APRES</td>\n",
" <td>27/11/2012</td>\n",
" <td>60.0</td>\n",
" <td>2012-11-27</td>\n",
" <td>Dilma</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União</td>\n",
" <td>63000</td>\n",
" <td>Advocacia-Geral da União - Unidades com víncul...</td>\n",
" <td>110096</td>\n",
" <td>SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO</td>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>***.401.785-**</td>\n",
" <td>MARCELO DA SILVA CARUCA</td>\n",
" <td>4066259000196</td>\n",
" <td>MULTI UTILIDADES LTDA</td>\n",
" <td>COMPRA A/V - R$ - APRES</td>\n",
" <td>28/11/2012</td>\n",
" <td>84.4</td>\n",
" <td>2012-11-28</td>\n",
" <td>Dilma</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" CÓDIGO ÓRGÃO SUPERIOR NOME ÓRGÃO SUPERIOR CÓDIGO ÓRGÃO \\\n",
"0 63000 Advocacia-Geral da União 63000 \n",
"1 63000 Advocacia-Geral da União 63000 \n",
"2 63000 Advocacia-Geral da União 63000 \n",
"3 63000 Advocacia-Geral da União 63000 \n",
"4 63000 Advocacia-Geral da União 63000 \n",
"\n",
" NOME ÓRGÃO CÓDIGO UNIDADE GESTORA \\\n",
"0 Advocacia-Geral da União - Unidades com víncul... 110096 \n",
"1 Advocacia-Geral da União - Unidades com víncul... 110096 \n",
"2 Advocacia-Geral da União - Unidades com víncul... 110096 \n",
"3 Advocacia-Geral da União - Unidades com víncul... 110096 \n",
"4 Advocacia-Geral da União - Unidades com víncul... 110096 \n",
"\n",
" NOME UNIDADE GESTORA ANO EXTRATO MÊS EXTRATO \\\n",
"0 SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO 2013 1 \n",
"1 SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO 2013 1 \n",
"2 SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO 2013 1 \n",
"3 SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO 2013 1 \n",
"4 SUPERINTENDENCIA ADMINISTRACAO EM PERNAMBUCO 2013 1 \n",
"\n",
" CPF PORTADOR NOME PORTADOR CNPJ OU CPF FAVORECIDO \\\n",
"0 ***.419.804-** ULISSES ANTONIO CAVALCANTI BIONES -2 \n",
"1 ***.541.564-** FELLIPE JOSE DA ROCHA MUNT -2 \n",
"2 ***.541.564-** FELLIPE JOSE DA ROCHA MUNT -2 \n",
"3 ***.804.561-** JOSE DE JESUS 32782393000129 \n",
"4 ***.401.785-** MARCELO DA SILVA CARUCA 4066259000196 \n",
"\n",
" NOME FAVORECIDO TRANSAÇÃO DATA TRANSAÇÃO \\\n",
"0 NAO SE APLICA SAQUE CASH/ATM BB 27/11/2012 \n",
"1 NAO SE APLICA SAQUE CASH/ATM BB 06/12/2012 \n",
"2 NAO SE APLICA SAQUE CASH/ATM BB 19/12/2012 \n",
"3 MOVIDROLAR LTDA COMPRA A/V - R$ - APRES 27/11/2012 \n",
"4 MULTI UTILIDADES LTDA COMPRA A/V - R$ - APRES 28/11/2012 \n",
"\n",
" VALOR TRANSAÇÃO expense_date president \n",
"0 120.0 2012-11-27 Dilma \n",
"1 190.0 2012-12-06 Dilma \n",
"2 70.0 2012-12-19 Dilma \n",
"3 60.0 2012-11-27 Dilma \n",
"4 84.4 2012-11-28 Dilma "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def president(row):\n",
" for term in TERMS:\n",
" if term.start <= row.expense_date < term.end:\n",
" return term.name\n",
" \n",
" # fall back for blank dates\n",
" expense_date = date(row[\"ANO EXTRATO\"], row[\"MÊS EXTRATO\"], 1)\n",
" for term in TERMS:\n",
" if term.start <= expense_date < term.end:\n",
" return term.name\n",
"\n",
"df[\"expense_date\"] = pd.to_datetime(df[\"DATA TRANSAÇÃO\"], format='%d/%m/%Y')\n",
"df['president'] = df.apply(president, axis=1)\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['Dilma', 'Temer', 'Bolsonaro'], dtype=object)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.president.unique()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Isolando gastos da presidência"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>CÓDIGO ÓRGÃO SUPERIOR</th>\n",
" <th>NOME ÓRGÃO SUPERIOR</th>\n",
" <th>CÓDIGO ÓRGÃO</th>\n",
" <th>NOME ÓRGÃO</th>\n",
" <th>CÓDIGO UNIDADE GESTORA</th>\n",
" <th>NOME UNIDADE GESTORA</th>\n",
" <th>ANO EXTRATO</th>\n",
" <th>MÊS EXTRATO</th>\n",
" <th>CPF PORTADOR</th>\n",
" <th>NOME PORTADOR</th>\n",
" <th>CNPJ OU CPF FAVORECIDO</th>\n",
" <th>NOME FAVORECIDO</th>\n",
" <th>TRANSAÇÃO</th>\n",
" <th>DATA TRANSAÇÃO</th>\n",
" <th>VALOR TRANSAÇÃO</th>\n",
" <th>expense_date</th>\n",
" <th>president</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>17305</td>\n",
" <td>20000</td>\n",
" <td>Presidência da República</td>\n",
" <td>20101</td>\n",
" <td>Presidência da República</td>\n",
" <td>110322</td>\n",
" <td>GABINETE DE SEGURANÇA INSTITUCIONAL/PR</td>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>Sigiloso</td>\n",
" <td>-11</td>\n",
" <td>Sigiloso</td>\n",
" <td>Informações protegidas por sigilo</td>\n",
" <td>NaN</td>\n",
" <td>1129.80</td>\n",
" <td>NaT</td>\n",
" <td>Dilma</td>\n",
" </tr>\n",
" <tr>\n",
" <td>17306</td>\n",
" <td>20000</td>\n",
" <td>Presidência da República</td>\n",
" <td>20101</td>\n",
" <td>Presidência da República</td>\n",
" <td>110322</td>\n",
" <td>GABINETE DE SEGURANÇA INSTITUCIONAL/PR</td>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>Sigiloso</td>\n",
" <td>-11</td>\n",
" <td>Sigiloso</td>\n",
" <td>Informações protegidas por sigilo</td>\n",
" <td>NaN</td>\n",
" <td>4352.25</td>\n",
" <td>NaT</td>\n",
" <td>Dilma</td>\n",
" </tr>\n",
" <tr>\n",
" <td>17307</td>\n",
" <td>20000</td>\n",
" <td>Presidência da República</td>\n",
" <td>20101</td>\n",
" <td>Presidência da República</td>\n",
" <td>110322</td>\n",
" <td>GABINETE DE SEGURANÇA INSTITUCIONAL/PR</td>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>Sigiloso</td>\n",
" <td>-11</td>\n",
" <td>Sigiloso</td>\n",
" <td>Informações protegidas por sigilo</td>\n",
" <td>NaN</td>\n",
" <td>7061.25</td>\n",
" <td>NaT</td>\n",
" <td>Dilma</td>\n",
" </tr>\n",
" <tr>\n",
" <td>17308</td>\n",
" <td>20000</td>\n",
" <td>Presidência da República</td>\n",
" <td>20101</td>\n",
" <td>Presidência da República</td>\n",
" <td>110322</td>\n",
" <td>GABINETE DE SEGURANÇA INSTITUCIONAL/PR</td>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>Sigiloso</td>\n",
" <td>-11</td>\n",
" <td>Sigiloso</td>\n",
" <td>Informações protegidas por sigilo</td>\n",
" <td>NaN</td>\n",
" <td>781.20</td>\n",
" <td>NaT</td>\n",
" <td>Dilma</td>\n",
" </tr>\n",
" <tr>\n",
" <td>17309</td>\n",
" <td>20000</td>\n",
" <td>Presidência da República</td>\n",
" <td>20101</td>\n",
" <td>Presidência da República</td>\n",
" <td>110322</td>\n",
" <td>GABINETE DE SEGURANÇA INSTITUCIONAL/PR</td>\n",
" <td>2013</td>\n",
" <td>1</td>\n",
" <td>NaN</td>\n",
" <td>Sigiloso</td>\n",
" <td>-11</td>\n",
" <td>Sigiloso</td>\n",
" <td>Informações protegidas por sigilo</td>\n",
" <td>NaN</td>\n",
" <td>570.00</td>\n",
" <td>NaT</td>\n",
" <td>Dilma</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" CÓDIGO ÓRGÃO SUPERIOR NOME ÓRGÃO SUPERIOR CÓDIGO ÓRGÃO \\\n",
"17305 20000 Presidência da República 20101 \n",
"17306 20000 Presidência da República 20101 \n",
"17307 20000 Presidência da República 20101 \n",
"17308 20000 Presidência da República 20101 \n",
"17309 20000 Presidência da República 20101 \n",
"\n",
" NOME ÓRGÃO CÓDIGO UNIDADE GESTORA \\\n",
"17305 Presidência da República 110322 \n",
"17306 Presidência da República 110322 \n",
"17307 Presidência da República 110322 \n",
"17308 Presidência da República 110322 \n",
"17309 Presidência da República 110322 \n",
"\n",
" NOME UNIDADE GESTORA ANO EXTRATO MÊS EXTRATO \\\n",
"17305 GABINETE DE SEGURANÇA INSTITUCIONAL/PR 2013 1 \n",
"17306 GABINETE DE SEGURANÇA INSTITUCIONAL/PR 2013 1 \n",
"17307 GABINETE DE SEGURANÇA INSTITUCIONAL/PR 2013 1 \n",
"17308 GABINETE DE SEGURANÇA INSTITUCIONAL/PR 2013 1 \n",
"17309 GABINETE DE SEGURANÇA INSTITUCIONAL/PR 2013 1 \n",
"\n",
" CPF PORTADOR NOME PORTADOR CNPJ OU CPF FAVORECIDO NOME FAVORECIDO \\\n",
"17305 NaN Sigiloso -11 Sigiloso \n",
"17306 NaN Sigiloso -11 Sigiloso \n",
"17307 NaN Sigiloso -11 Sigiloso \n",
"17308 NaN Sigiloso -11 Sigiloso \n",
"17309 NaN Sigiloso -11 Sigiloso \n",
"\n",
" TRANSAÇÃO DATA TRANSAÇÃO VALOR TRANSAÇÃO \\\n",
"17305 Informações protegidas por sigilo NaN 1129.80 \n",
"17306 Informações protegidas por sigilo NaN 4352.25 \n",
"17307 Informações protegidas por sigilo NaN 7061.25 \n",
"17308 Informações protegidas por sigilo NaN 781.20 \n",
"17309 Informações protegidas por sigilo NaN 570.00 \n",
"\n",
" expense_date president \n",
"17305 NaT Dilma \n",
"17306 NaT Dilma \n",
"17307 NaT Dilma \n",
"17308 NaT Dilma \n",
"17309 NaT Dilma "
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"presidents = df[df[\"NOME UNIDADE GESTORA\"] == \"GABINETE DE SEGURANÇA INSTITUCIONAL/PR\"]\n",
"presidents.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Atualizando valores pelo IGP-M"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>president</th>\n",
" <th>ANO EXTRATO</th>\n",
" <th>MÊS EXTRATO</th>\n",
" <th>VALOR TRANSAÇÃO</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>Bolsonaro</td>\n",
" <td>2019</td>\n",
" <td>1</td>\n",
" <td>1959.47</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>Bolsonaro</td>\n",
" <td>2019</td>\n",
" <td>2</td>\n",
" <td>53088.90</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>Bolsonaro</td>\n",
" <td>2019</td>\n",
" <td>3</td>\n",
" <td>147357.67</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>Bolsonaro</td>\n",
" <td>2019</td>\n",
" <td>4</td>\n",
" <td>123277.80</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>Bolsonaro</td>\n",
" <td>2019</td>\n",
" <td>5</td>\n",
" <td>57961.27</td>\n",
" </tr>\n",
" <tr>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <td>59</td>\n",
" <td>Temer</td>\n",
" <td>2018</td>\n",
" <td>8</td>\n",
" <td>1423.81</td>\n",
" </tr>\n",
" <tr>\n",
" <td>60</td>\n",
" <td>Temer</td>\n",
" <td>2018</td>\n",
" <td>9</td>\n",
" <td>17936.83</td>\n",
" </tr>\n",
" <tr>\n",
" <td>61</td>\n",
" <td>Temer</td>\n",
" <td>2018</td>\n",
" <td>10</td>\n",
" <td>1960.75</td>\n",
" </tr>\n",
" <tr>\n",
" <td>62</td>\n",
" <td>Temer</td>\n",
" <td>2018</td>\n",
" <td>11</td>\n",
" <td>1600.00</td>\n",
" </tr>\n",
" <tr>\n",
" <td>63</td>\n",
" <td>Temer</td>\n",
" <td>2018</td>\n",
" <td>12</td>\n",
" <td>500.00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>64 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" president ANO EXTRATO MÊS EXTRATO VALOR TRANSAÇÃO\n",
"0 Bolsonaro 2019 1 1959.47\n",
"1 Bolsonaro 2019 2 53088.90\n",
"2 Bolsonaro 2019 3 147357.67\n",
"3 Bolsonaro 2019 4 123277.80\n",
"4 Bolsonaro 2019 5 57961.27\n",
".. ... ... ... ...\n",
"59 Temer 2018 8 1423.81\n",
"60 Temer 2018 9 17936.83\n",
"61 Temer 2018 10 1960.75\n",
"62 Temer 2018 11 1600.00\n",
"63 Temer 2018 12 500.00\n",
"\n",
"[64 rows x 4 columns]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"monthly = presidents.groupby([\"president\", \"ANO EXTRATO\", \"MÊS EXTRATO\"]).agg(np.sum)[\"VALOR TRANSAÇÃO\"].reset_index()\n",
"monthly"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\urllib3\\connectionpool.py:847: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n",
" InsecureRequestWarning)\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>president</th>\n",
" <th>ANO EXTRATO</th>\n",
" <th>MÊS EXTRATO</th>\n",
" <th>VALOR TRANSAÇÃO</th>\n",
" <th>adjusted</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>Bolsonaro</td>\n",
" <td>2019</td>\n",
" <td>1</td>\n",
" <td>1959.47</td>\n",
" <td>2102.86</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>Bolsonaro</td>\n",
" <td>2019</td>\n",
" <td>2</td>\n",
" <td>53088.90</td>\n",
" <td>56968.20</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>Bolsonaro</td>\n",
" <td>2019</td>\n",
" <td>3</td>\n",
" <td>147357.67</td>\n",
" <td>156745.99</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>Bolsonaro</td>\n",
" <td>2019</td>\n",
" <td>4</td>\n",
" <td>123277.80</td>\n",
" <td>129500.26</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>Bolsonaro</td>\n",
" <td>2019</td>\n",
" <td>5</td>\n",
" <td>57961.27</td>\n",
" <td>60331.82</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" president ANO EXTRATO MÊS EXTRATO VALOR TRANSAÇÃO adjusted\n",
"0 Bolsonaro 2019 1 1959.47 2102.86\n",
"1 Bolsonaro 2019 2 53088.90 56968.20\n",
"2 Bolsonaro 2019 3 147357.67 156745.99\n",
"3 Bolsonaro 2019 4 123277.80 129500.26\n",
"4 Bolsonaro 2019 5 57961.27 60331.82"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"calculadora = CalculadoraDoCidadão(verificar_ssl=False)\n",
"\n",
"def update(row):\n",
" expense_date = date(row[\"ANO EXTRATO\"], row[\"MÊS EXTRATO\"], 1)\n",
" reference_date = date(2019, 12, 1)\n",
" result = calculadora(row[\"VALOR TRANSAÇÃO\"], expense_date, reference_date)\n",
" return result.get(\"Valor corrigido na data final\")\n",
"\n",
"monthly[\"adjusted\"] = monthly.apply(update, axis=1)\n",
"monthly.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Análise ano/ano"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>president</th>\n",
" <th>ANO EXTRATO</th>\n",
" <th>MÊS EXTRATO</th>\n",
" <th>VALOR TRANSAÇÃO</th>\n",
" <th>adjusted</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>Temer</td>\n",
" <td>2016</td>\n",
" <td>6</td>\n",
" <td>24567.10</td>\n",
" <td>29027.31</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>Temer</td>\n",
" <td>2018</td>\n",
" <td>77</td>\n",
" <td>30808.34</td>\n",
" <td>33500.18</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>Dilma</td>\n",
" <td>2016</td>\n",
" <td>15</td>\n",
" <td>346345.49</td>\n",
" <td>417339.84</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3</td>\n",
" <td>Dilma</td>\n",
" <td>2015</td>\n",
" <td>78</td>\n",
" <td>478643.32</td>\n",
" <td>627998.32</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td>\n",
" <td>Dilma</td>\n",
" <td>2013</td>\n",
" <td>72</td>\n",
" <td>490652.34</td>\n",
" <td>715004.15</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td>\n",
" <td>Dilma</td>\n",
" <td>2014</td>\n",
" <td>78</td>\n",
" <td>859023.99</td>\n",
" <td>1190422.77</td>\n",
" </tr>\n",
" <tr>\n",
" <td>6</td>\n",
" <td>Bolsonaro</td>\n",
" <td>2019</td>\n",
" <td>78</td>\n",
" <td>1339610.36</td>\n",
" <td>1388505.43</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" president ANO EXTRATO MÊS EXTRATO VALOR TRANSAÇÃO adjusted\n",
"0 Temer 2016 6 24567.10 29027.31\n",
"1 Temer 2018 77 30808.34 33500.18\n",
"2 Dilma 2016 15 346345.49 417339.84\n",
"3 Dilma 2015 78 478643.32 627998.32\n",
"4 Dilma 2013 72 490652.34 715004.15\n",
"5 Dilma 2014 78 859023.99 1190422.77\n",
"6 Bolsonaro 2019 78 1339610.36 1388505.43"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"monthly.groupby(['president', 'ANO EXTRATO']).agg(np.sum).sort_values('adjusted').reset_index()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Análise gastos/dia"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>president</th>\n",
" <th>total</th>\n",
" <th>days_in_office</th>\n",
" <th>expenses_per_day</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <td>0</td>\n",
" <td>Bolsonaro</td>\n",
" <td>1388505.43</td>\n",
" <td>367.0</td>\n",
" <td>3783.393542</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1</td>\n",
" <td>Dilma</td>\n",
" <td>2950765.08</td>\n",
" <td>1958.0</td>\n",
" <td>1507.030174</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2</td>\n",
" <td>Temer</td>\n",
" <td>62527.49</td>\n",
" <td>964.0</td>\n",
" <td>64.862541</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" president total days_in_office expenses_per_day\n",
"0 Bolsonaro 1388505.43 367.0 3783.393542\n",
"1 Dilma 2950765.08 1958.0 1507.030174\n",
"2 Temer 62527.49 964.0 64.862541"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def by_president(rows):\n",
" delta = None\n",
" for term in TERMS:\n",
" if term.name == rows.president.unique()[0]:\n",
" delta = term.end - term.start\n",
" \n",
" if not delta:\n",
" return\n",
" \n",
" total = rows[\"adjusted\"].sum()\n",
" return pd.Series({\n",
" \"total\": total,\n",
" \"days_in_office\": delta.days,\n",
" \"expenses_per_day\": total / delta.days \n",
" \n",
" })\n",
" \n",
"monthly.groupby('president').apply(by_president).reset_index()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@diraol
Copy link

diraol commented Dec 30, 2019

Não consegui terminar ainda, mas tá aqui uma função que pega o valor corrigido via IPCA (mensal):

import re

import requests
from bs4 import BeautifulSoup

def corrige_valor(valor_original, mes_origem, ano_origem, mes_final=11, ano_final=2019):

    """
    Função que corrige, de acordo com o IPCA, um valor monetário (float).

    Args:
        - valor_original (float): valor a ser corrigido que está na data de origem.
        - mes_origem (int): Número do mês de origem (1 a 12)
        - ano_origem (int): Ano de origem
        - mes_final (int): Número do mês para o qual o valor deverá ser corrigido (1 a 12): default: 11
        - ano_final (int): Ano para o qual o valor deverá ser corrigido - default: 2019
    Return:
        Valor corrigido
    """

    resp = requests.post('https://www3.bcb.gov.br/CALCIDADAO/publico/corrigirPorIndice.do?method=corrigirPorIndice',
                         data={'aba':1,
                               'selIndice': '00433IPCA',
                               'dataInicial': f'{mes_origem:0>2d}/{ano_origem}',
                               'dataFinal': f'{mes_final:0>2d}/{ano_final}',
                               'valorCorrecao': valor_original,
                               'idIndice': None,
                               'nomeIndicePeriodo': None
                              })
    valor = BeautifulSoup(resp.content)\
        .select('table[title^="Correção de valores"]', class_="tabela")[0]\
        .select('tbody')[0]\
        .select('td')[-1]\
        .text
    valor = float(re.findall(r"\d+,\d\d", valor.replace(".", ""))[0].replace(",", "."))
    return valor

Agora precisaria, das duas uma:

1 - Fazer a sumarização por mês/ano, fazer a correção e depois "juntar tudo"
2 - Fazer a correção para cada dado e depois "juntar tudo".

Como a função faz chamadas (http post) para cada vez que é chamada, o melhor é "agregar por mês", corrigir o valor e depois finalizar a sumarização.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment