Escolar Documentos
Profissional Documentos
Cultura Documentos
Padrão de Resposta
Professores Bruno Marques e Marcelo Eustáquio
CURSO DE DISCURSIVA
Profs. Bruno Marques e Marcelo Eustáquio
ENUNCIADO
Cebraspe – Inédita/2024
Plano de Dados Abertos do Banco Central do Brasil
Maio/2023 – Abril/2025
A Política de Dados Abertos do Poder Executivo Federal foi instituída pelo Decreto
nº 8.777, de 11 de maio de 2016, e tem por objetivo a disponibilização na
internet – por parte de órgãos e entidades da administração pública federal
direta, autárquica e fundacional – de dados e informações acessíveis ao público
que possam ser livremente lidos por máquina, usados, cruzados e reutilizados,
fomentando-se o controle social, o desenvolvimento tecnológico, o
aprimoramento da cultura de transparência pública e a inovação nos diversos
setores da sociedade. Atendendo ao disposto no referido Decreto, o Ouvidor, na
qualidade de autoridade de monitoramento da LAI, foi designado para atuar no
monitoramento da implementação do Plano de Dados Abertos do Banco Central
do Brasil (PDA/BC).
O Plano de Dados Abertos do Banco Central do Brasil (PDA/BC) estabelece o
modelo de governança, diretrizes e orientações estratégicas e operacionais para
ações de contínua ampliação e aprimoramento da transparência das informações
produzidas pela Autarquia, particularmente pela publicação de bases de dados
em formatos abertos, nos casos em que não haja vedação expressa de acesso,
cobrindo sua expansão, aprofundamento, aperfeiçoamentos e divulgação, de
modo a inclusive permitir a reutilização dos dados públicos pela sociedade.
Desde a edição do primeiro PDA/BC, em 2016, cabe ressaltar a criação do Portal
de Dados Abertos, a realização de concurso de aplicativos, a participação em
eventos de divulgação, a exemplo da Campus Party, além da própria vanguarda
na disponibilização de dados em formato aberto entre os órgãos no governo
federal. Em 11 de abril de 2023 o BC disponibilizava 3.706 bases de dados no
Portal Brasileiro de Dados Abertos, o que representava 30,2% do total de bases
disponibilizados por todos os órgãos do poder público (12.275).
A priorização da disponibilização dos conjuntos de dados pelo BC busca
considerar o grau de demanda potencial das informações como um critério
fundamental, respeitando-se evidentemente os dispositivos legais e
regulamentares e o alinhamento estratégico da Instituição. O BC identifica o
potencial das informações a serem disponibilizadas no Portal por meio, em
especial, de: (1) consultas públicas1 efetuada via pesquisas junto à sociedade
em geral e também junto ao Conselho de Usuários, (2) mapeamento das
www.voceconcursado.com.br
CURSO DE DISCURSIVA
Profs. Bruno Marques e Marcelo Eustáquio
A biblioteca python-bcb
O python-bcb é uma interface em Pynthon é uma iniciativa derivada do projeto
de Dados Abertos do Banco Central do Brasil estruturada para obter informações
da API de dados abertos da própria instituição. Por meio do python-bcb, pode o
programador acessar dados de moedas, taxas de juros, índices de preços e
informações de instituições financeiras, entre outros dados disponíveis.
A seguir, vê-se como usar a API do Banco Central para recuperar dados da SELIC
entre 01/01/2021 e 31/12/2023 para plotar um gráfico de linhas.
Os dados de serie podem ser usados como parâmetros de funções, como pode
ser observado no fragmento (incompleto) de código a seguir:
www.voceconcursado.com.br
CURSO DE DISCURSIVA
Profs. Bruno Marques e Marcelo Eustáquio
www.voceconcursado.com.br
CURSO DE DISCURSIVA
Profs. Bruno Marques e Marcelo Eustáquio
PADRÃO DE RESPOSTA
www.voceconcursado.com.br
CURSO DE DISCURSIVA
Profs. Bruno Marques e Marcelo Eustáquio
www.voceconcursado.com.br
CURSO DE DISCURSIVA
Profs. Bruno Marques e Marcelo Eustáquio
www.voceconcursado.com.br
CURSO DE DISCURSIVA
Profs. Bruno Marques e Marcelo Eustáquio
def media_SELIC(serie):
serie = serie.replace({',':'.'}, regex=True)
serie['valor'] = serie['valor'].astype(float)
soma_valores = 0.0
contador = 0
for valor in serie['valor']:
soma_valores += valor
contador += 1
if contador == 0:
return None
media = soma_valores / contador
return media
www.voceconcursado.com.br
CURSO DE DISCURSIVA
Profs. Bruno Marques e Marcelo Eustáquio
media = media_SELIC()
soma_valores = 0.0
contador = 0
for valor in serie['valor']:
soma_valores += (media - valor) ** 2
contador += 1
if contador == 0:
return None
variancia = soma_valores / contador
return variância
www.voceconcursado.com.br
CURSO DE DISCURSIVA
Profs. Bruno Marques e Marcelo Eustáquio
PROPOSTA DE RESOLUÇÃO
www.voceconcursado.com.br
CURSO DE DISCURSIVA
Profs. Bruno Marques e Marcelo Eustáquio
www.voceconcursado.com.br
CURSO DE DISCURSIVA
Profs. Bruno Marques e Marcelo Eustáquio
if contador == 0:
return None
variancia = soma_valores / contador
return variância
Por fim, implementação da função inserir_registros_mtsql (serie,
nome_tabela, conexão) deve observar elementos de conexão passados como
parâmetros usando a variável conexão. Nesses termos e usando Python, uma
possível implementação da função proposta é apresentada a seguir:
def inserir_registros_mysql(X, nome_tabela, conexao):
X = X.replace({',':'.'}, regex=True)
X['valor'] = X['valor'].astype(float)
criar_tabela_sql = f"""
CREATE TABLE IF NOT EXISTS {nome_tabela} (
data DATE,
valor FLOAT)"""
conexao.execute(criar_tabela_sql)
str_sql = f"INSERT INTO {nome_tabela} (data, valor) VALUES (%s, %s)"
for index, row in X.iterrows():
valores = (row['data'], row['valor'])
conexao.execute(str_sql, valores)
12
www.voceconcursado.com.br