letreiro / mais

Universalizando o acesso a dados no Brasil | 📖 Docs: https://basedosdados.github.io/mais/

Home Page:https://bit.ly/basedosdados

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Base dos Dados Mais

Universalizando o acesso a dados de qualidade no Brasil.

Watch Start Tweet Discord Apoiase

Versões atuais do pacote:

R Python
CRAN/METACRAN Version
CRAN/METACRAN Total downloads
CRAN/METACRAN downloads per month
Lifecycle: stable
PyPI version
PyPI - Downloads
Coverage Status
Lifecycle: stable

O que fazemos?

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.

Acesse o projeto no BigQuery ↗️

Leia a documentação 📖

Confira exemplos e tutoriais 📊

Usando em Python

Instale

pip install basedosdados

Acesse 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 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.

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.

Exemplos e tutoriais

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.

Contribua! 🔄

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!

Apoie 💚

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.

Como citar o projeto 📝

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.

Idiomas

Documentação está em português (quando possível), código e configurações estão em inglês.

Docs (dev)

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 

About

Universalizando o acesso a dados no Brasil | 📖 Docs: https://basedosdados.github.io/mais/

https://bit.ly/basedosdados

License:MIT License


Languages

Language:Stata 46.7%Language:R 27.5%Language:Python 25.6%Language:Shell 0.1%Language:Makefile 0.1%