Git Product home page Git Product logo

mais's Introduction

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.

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 

mais's People

Contributors

joaocarabetta avatar rdahis avatar fernandascovino avatar d116626 avatar hevsouza avatar mavalentim avatar lucasnascm avatar hellcassius avatar gustavoairestiago avatar allcontributors[bot] avatar vncsna avatar pedrocava avatar crislanealves avatar hsxavier avatar aspeddro avatar rfdornelles avatar polvoazul avatar filipemsc avatar kimjoaoun avatar leonardoshibata avatar jptbrandao avatar

Stargazers

Andre Santos avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.