Universalizando o acesso a dados de qualidade no Brasil.
Versões atuais do pacote:
R | Python |
---|---|
Tratamos, padronizamos e disponibilizamos bases de dados públicas de várias fontes como PNAD, RAIS, Censo e DataSUS. A Base dos Dados Mais (BD+) é um datalake público no Google BigQuery e uma consulta escrita em SQL é o suficiente para começar a sua análise.
O datalake com bases padronizadas permite cruzamento de dados oficiais de alta qualidade, que manualmente pode demorar dezenas de horas, com algumas poucas linhas de SQL. Temos bibliotecas em Python e R para facilitar o acesso e estamos sempre adicionando novas bases.
O projeto faz parte da Base dos Dados, uma organização sem fins lucrativos com a missão e universalizar o acesso a dados de qualidade para todes. Veja mais quem contribui e como você também pode contribuir.
pip install basedosdados
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
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!
import basedosdados as bd
bd.list_datasets()
Para saber mais, veja os exemplos ou a documentação da API
install.packages("basedosdados")
# ou a versão de desenvolvimento
devtools::install_github("basedosdados/mais", subdir = "r-package")
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 disco
Ou 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.
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.
Acesse os códigos de análises produzidas em Workshops, Artigos, Tutoriais e Redes Sociais todas no nosso repositório de analises.
Você pode conferir também tutoriais de como utilizar nossa plataforma no Youtube e no blog.
Você pode contribuir de várias maneiras:
- Subindo novos conjuntos de dados
- Melhorando a documentação
- Criando tutoriais e workshops
- Melhorando nossa API em Python
- Melhorando nossa API em R
- Criando checagens automáticas de qualidade de dados e metadados (em Python)
- Melhorando nosso o UX do nosso site (React, CSS, HTML)
- Contribuindo com nossa comunicação e mídias
- Reportando bugs
- Ajudando na captação de recursos
- Nos chamando para aprensetações, simpósios e conferências
- Corrigindo links quebrados no site
Incentivamos que outras instituições e pessoas contribuam. Veja mais como contribuir e descubra quem contribui com nosso código!
A Base dos Dados já poupou horas da sua vida? Permitiu coisas antes impossíveis? Nosso trabalho é quase todo voluntário, mas temos vários custos de infraestrutura, equipe, e outros.
Nos ajude a fazer esse projeto se manter e crescer! Todo mês no nosso financiamento coletivo ou via PIX na chave 42494318000116.
O projeto está licenciado sob a Licença Hipocrática. Sempre que usar os dados cite a fonte como:
Português:
Carabetta, João; Dahis, Ricardo; Israel, Fred; Scovino, Fernanda (2020) Base dos Dados: Repositório de Dados Abertos em https://basedosdados.org.
Inglês:
Carabetta, João; Dahis, Ricardo; Israel, Fred; Scovino, Fernanda (2020) Data Basis: Open Data Repository at https://basedosdados.org.
Documentação está em português (quando possível), código e configurações estão em inglês.
Atualize os docs adicionando ou editando .md
em docs/
.
Se for adicionar um arquivo novo, adicione ele em mkdocs.yml
sob a chave nav
.
Para testar a documentação, rode:
mkdocs serve