Universalizando o acesso a dados de qualidade no Brasil.
A Base dos Dados Mais (BD+) 茅 um datalake p煤blico no Google BigQuery com os principais conjuntos de dados abertos do Brasil. Na BD+ voc锚 encontra tabelas tratadas e prontas para uso de forma gratuita. Disponibilizamos e mantemos neste projeto pacotes de acesso 脿 BD+ em diferentes linguagens.
O projeto faz parte da Base dos Dados, uma organiza莽茫o sem fins lucrativos com a miss茫o de universalizar o acesso a dados de qualidade para todes.
Vers玫es atuais
| R | Python | Stata |
|---|---|---|
install.packages("basedosdados") |
pip install basedosdados |
- |
Encontre aqui
馃摑 Como citar o projeto馃悕 Usando em Python
Usando em R- An谩lises e tutoriais:
鈿欙笍 Desenvolvimento馃懃 Como contribuir鈫� 馃挌 Apoie o projeto!鈫�
Como citar o projeto
O projeto (software) est谩 sob licenca MIT - logo, pode ser utilizado e modificado sem restri莽玫es desde que sejam remetidos os direitos autorais originais - veja o texto de refer锚ncia aqui.
Caso queira citar o projeto numa publica莽茫o, artigo ou na web, utilize o modelo no menu ao lado conforme a imagem.
Usando em Python
Instale
pip install basedosdadosAcesse uma tabela
import basedosdados as bd
df = bd.read_table('br_ibge_pib', 'municipio', billing_project_id="<YOUR-PROJECT>")Caso esteja acessando da primeira vez, v茫o aparecer alguns passos na tela para autenticar seu projeto - basta segui-los!
脡 necess谩rio criar um projeto para que voc锚 possa fazer as queries no nosso reposit贸rio. Ter um projeto 茅 de gra莽a e basta ter uma conta Google (seu gmail por exemplo). Veja aqui como criar um projeto no Google Cloud.
Se poss铆vel, armazene suas credenciais em um arquivo
dotenv:"billing_project_id=<suas_credenciais_do_projeto>" >> .env
Fa莽a uma consulta
import basedosdados as bd
# Bens dos candidatos de Tocantins em 2020
query = """
SELECT *
FROM `basedosdados.br_tse_eleicoes.bens_candidato`
WHERE ano = 2020
AND sigla_uf = 'TO'
"""
df = bd.read_sql(query, billing_project_id="<YOUR-PROJECT>")Caso esteja acessando da primeira vez, v茫o aparecer alguns passos na tela para autenticar seu projeto - basta segui-los!
Veja todos os datasets dispon铆veis
import basedosdados as bd
bd.list_datasets()Para saber mais, veja os exemplos ou a documenta莽茫o da API
Usando em R
Instala莽茫o
install.packages("basedosdados")
# ou a vers茫o de desenvolvimento
devtools::install_github("basedosdados/mais", subdir = "r-package")Consultas
read_sql executa queries no banco e as devolve em dataframes (sempre na classe tibble), download escreve o resultado da query em um arquivo .csv no disco.
library(basedosdados)
set_billing_id("id do seu projeto aqui") # autentica莽茫o para acesso aos dados
pib_per_capita <- "
SELECT
pib.id_municipio ,
pop.ano,
pib.PIB / pop.populacao as pib_per_capita
FROM `basedosdados.br_ibge_pib.municipio` as pib
INNER JOIN `basedosdados.br_ibge_populacao.municipio` as pop
ON pib.id_municipio = pop.id_municipio AND pib.ano = pop.ano"
(data <- read_sql(pib_per_capita)) # leia os dados em mem贸ria
download(pib_per_capita, "pib_per_capita.csv") # salve os dados em discoOu use o nosso backend para o dplyr e fa莽a queries com c贸digo, sem SQL.
query <- basedosdados::bdplyr("br_inep_ideb.municipio") %>%
dplyr::select(ano, id_municipio, sigla_uf, ideb) %>%
dplyr::filter(sigla_uf == "AC", ano < 2021) %>%
dplyr::group_by(ano) %>%
dplyr::summarise(ideb_medio = mean(ideb, na.rm = TRUE))
basedosdados::bd_collect(query) # retorne como um tibble
basedosdados::bd_write_csv(query, "ideb_medio.csv")
basedosdados::bd_write_rds(query, "ideb_medio.rds") bd_write 茅 uma extens茫o para formatos customizados.
basedosdados::bd_write(query, .write_fn = writexl::write_xlsx, "ideb_medio.xlsx")
basedosdados::bd_write(query, .write_fn = jsonlite::write_json, "ideb_medio.json")
basedosdados::bd_write(query, .write_fn = haven::write_dta, "ideb_medio.dta")O argumento .write_fn espera uma fun莽茫o que receba como argumento um tibble e um endere莽o de escrita, compat铆vel com a interface convencional da l铆ngua para escrever arquivos em disco. A princ铆pio, toda fun莽茫o write_* dispon铆vel no CRAN deve funcionar.
Caso encontre algum problema no pacote e queira ajudar, basta documentar o problema em um exemplo m铆nimo reprodut铆vel e abrir uma issue.
Aten莽茫o
Caso esteja acessando da primeira vez, v茫o aparecer alguns passos na tela para autenticar seu projeto com sua conta google e possivelmente na Tidyverse API - basta segui-los! As credenciais ficam armazenadas no computador ent茫o usu谩rios com mais de uma m谩quina talvez precisem autenticar mais de uma vez. 脡 necess谩rio criar um projeto para que voc锚 possa fazer as queries no nosso reposit贸rio. Ter um projeto 茅 de gra莽a e basta ter uma conta Google (seu gmail por exemplo). Veja aqui como criar um projeto no Google Cloud. Se poss铆vel, armazene suas credenciais em um arquivo
dotenv, em bash o comando 茅"billing_project_id=<suas_credenciais_do_projeto>" >> .env. Veja aqui como criar um arquivo dotenv.
Desenvolvimento
Roadmap
Documenta莽茫o
Para rodar a documenta莽茫o localmente:
python -m venv .mais # cria ambiente virtual (s贸 rodar da primeira vez)
. .mais/bin/activate # ativa ambiente virtual
pip install --upgrade -r python-package/requirements-dev.txt # instala depend锚ncias
python python-package/setup.py develop # instala pacote local
mkdocs serve # cria documentacao em: http://localhost:8000/Atualize os docs adicionando ou editando os arquivos .md em docs/.
Para adicionar seu arquivo no sum谩rio da documenta莽茫o, adicione-o em
mkdocs.yml sob a chave nav:
nav:
- Home:
- Aprenda sobre a BD: index.md
- BigQuery: access_data_bq.md
- Pacotes: access_data_packages.md
- Contribua: colab.md
- [Seu novo t铆tulo]: <seu_arquivo>.md
