basedosdados
⚙️ Código de manutenção do datalake (metadados e pacotes de acesso) | 📖 Docs: https://basedosdados.org/docs/home
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (7.1%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
⚙️ Código de manutenção do datalake (metadados e pacotes de acesso) | 📖 Docs: https://basedosdados.org/docs/home
Basic Info
- Host: GitHub
- Owner: basedosdados
- License: mit
- Language: SQL
- Default Branch: master
- Homepage: https://info.basedosdados.org/links
- Size: 35.3 MB
Statistics
- Stars: 406
- Watchers: 15
- Forks: 86
- Open Issues: 35
- Releases: 31
Topics
Metadata Files
README.md
Universalizando o acesso a dados de qualidade no Brasil.
A Base dos Dados é 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:
- 👥 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.
💡 Quer divulgar seu projeto nas nossas redes? Envie para contato@basedosdados.org

Usando em Python
Instale
Com pip:
bash
pip install basedosdados
Com uv:
sh
uv add basedosdados
Com poetry:
sh
poetry add basedosdados
Acesse uma tabela
```python import basedosdados as bd
df = bd.readtable('bribgepib', 'municipio', billingproject_id="
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
```python 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.readsql(query, billingproject_id="
Caso esteja acessando da primeira vez, vão aparecer alguns passos na tela para autenticar seu projeto - basta segui-los!
Defina paramêtros utilizando as configurações do pacote
```py import basedosdados as bd
seta o billingprojectid global
bd.config.billingprojectid = '
query = """
SELECT
*
FROM basedosdados.br_bd_diretorios_brasil.municipio
"""
df = bd.read_sql(query=query) ```
Para saber mais, veja os exemplos ou a documentação da API
Criando múltiplas configurações
Caso você precise ter uma configuração adicional, com uma service account diferente, você pode criar uma configuração e utilizá-la em conjunto com a default, apenas alterando um atributo. Você deverá fazer o processo abaixo usando o terminal, mas esta forma só funcionará no Python.
Para isso, siga os seguintes passos:
- Renomeie a pasta com o comando abaixo (pode ser o nome que quiser)
bash mv ~/.basedosdados ~/.basedosdados_default - Neste momento, o pacote não terá a configuração padrão. Assim, ao rodar o comando
bash basedosdados config initele irá criar uma nova configuração padrão, que será salva na pasta~/.basedosdados(que será recriada). Lembre-se de, no passo em que é oferecido um link do Google Cloud Platform (GCP) para criar a novaservice account, observar que seu navegador esteja logado com a conta que você deseja utilizar. - Faça todo o processo como anteriormete, passando os parâmetros que deseja utilizar com esta nova conta, como o
pathdos metadados, o nome dobucketdo Google Cloud Storage, etc. - Ao salvar as novas
service accounts(prod e staging), certifique-se de salvar na pasta.basedosdadoscriada no passo 1. Na verdade, esta é apenas a repetição do processo de criação de uma nova configuração. - Renomeie a pasta criada no passo 1 para o nome que desejar, como
~/.bd_minha_nova_conta. - Caso você queira que a primeira configuração seja a padrão, retorne o nome da pasta modificada anterioremnte (
.basedosdados_default) para o valor utilizado como padrão pelo pacotebasedosdados, usando o comandomv ~/.basedosdados_default ~/.basedosdados. - A partir de agora, você poderá usar a nova conta (no Python), bastando utilizar o seguinte processo:
py import basedosdados as bd bd.config.project_config_path = f"{home}/.bd_minha_nova_conta"e, se quiser voltar para a configuração padrão, basta utilizar o comandopy bd.config.project_config_path = f"{home}/.basedosdados"Importante observar que, ao alterar o path de configuração do Python ele valerá para a sessão. Então é recomendável que ele seja usado com cuidado, evitanto trocas numa mesma sessão - especialmente quando estiver usandoJupyter Notebookonde é comum a reutilização de células anteriores, sem redefinição de variáveis e atributos anteriormente setados.
Usando em R
Instalação
```R install.packages("basedosdados")
ou a versão de desenvolvimento
devtools::install_github("basedosdados/sdk", 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.
```r library(basedosdados)
setbillingid("id do seu projeto aqui") # autenticação para acesso aos dados
pibpercapita <- "
SELECT
pib.idmunicipio ,
pop.ano,
pib.PIB / pop.populacao as pibpercapita
FROM `basedosdados.bribgepib.municipioas pib
INNER JOINbasedosdados.bribgepopulacao.municipio` as pop
ON pib.idmunicipio = pop.id_municipio AND pib.ano = pop.ano"
(data <- readsql(pibpercapita)) # leia os dados em memória download(pibpercapita, "pibper_capita.csv") # salve os dados em disco ```
Ou use o nosso backend para o dplyr e faça queries com código, sem SQL.
```r query <- basedosdados::bdplyr("brinepideb.municipio") %>% dplyr::select(ano, idmunicipio, siglauf, ideb) %>% dplyr::filter(siglauf == "AC", ano < 2021) %>% dplyr::groupby(ano) %>% dplyr::summarise(ideb_medio = mean(ideb, na.rm = TRUE))
basedosdados::bdcollect(query) # retorne como um tibble basedosdados::bdwritecsv(query, "idebmedio.csv") basedosdados::bdwriterds(query, "ideb_medio.rds") ```
bd_write é uma extensão para formatos customizados.
r
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.
Metadados e buscas
Você pode fazer buscas por tabelas usando palavras-chave ou buscar descrições de conjuntos e tabelas:
r
dataset_search("educação")
get_dataset_description("br_sp_alesp")
get_table_description("br_sp_alesp", "deputado")
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]https://basedosdados.org/docs/accessdatabq#bigquery). 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.
Contribua
Leia nosso guia de contribuição
Owner
- Name: Base dos Dados
- Login: basedosdados
- Kind: organization
- Email: contato@basedosdados.org
- Location: Brazil
- Website: https://info.basedosdados.org/links
- Twitter: basedosdados
- Repositories: 11
- Profile: https://github.com/basedosdados
Universalizando o acesso a dados de qualidade
Citation (CITATION.cff)
cff-version: 1.1.0 message: "If you use this software, please cite it as below." title: "Base dos Dados" authors: - name: "Base dos Dados" url: "https://basedosdados.org" license: MIT license-url: "https://github.com/basedosdados/sdk/blob/master/LICENSE" repository-code: https://github.com/basedosdados/sdk
GitHub Events
Total
- Create event: 33
- Release event: 1
- Issues event: 6
- Watch event: 14
- Delete event: 30
- Issue comment event: 18
- Push event: 95
- Pull request review comment event: 23
- Pull request review event: 23
- Pull request event: 59
- Fork event: 3
Last Year
- Create event: 33
- Release event: 1
- Issues event: 6
- Watch event: 14
- Delete event: 30
- Issue comment event: 18
- Push event: 95
- Pull request review comment event: 23
- Pull request review event: 23
- Pull request event: 59
- Fork event: 3
Committers
Last synced: 11 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Ricardo Dahis | 6****s | 232 |
| joaoc | j****a@g****m | 193 |
| Diego Oliveira | d****6@g****m | 167 |
| Fernanda Scovino | f****m@g****m | 120 |
| Lucas Moreira | 6****m | 94 |
| Crislane Alves | 5****s | 48 |
| lucascr91 | l****g@g****m | 45 |
| Hevilyn Souza | 7****a | 40 |
| Gustavo Aires Tiago | 3****o | 37 |
| Laura Amaral | 1****l | 31 |
| Matheus Valentim | 7****m | 31 |
| Vinicius Aguiar | v****a@g****m | 27 |
| Arthur Gusmão | a****o@i****r | 26 |
| Gustavo Alcantara | g****a@g****m | 25 |
| Gabrielle Carvalho | 7****v | 22 |
| Pedro Castro | a****o@g****m | 22 |
| Caio R S dos Santos | c****s@g****m | 19 |
| Mauricio Fagundes | m****s@g****m | 19 |
| allcontributors[bot] | 4****] | 16 |
| Gabriel Pisa | 6****l | 14 |
| Ingrid de Sales Rabelo | 1****o | 14 |
| Patrick Teixeira | 1****x | 13 |
| Pedro Cavalcante Oliveira | p****j@g****m | 12 |
| Jhony Lucas | j****7@g****m | 10 |
| Henrique S. Xavier | h****r@i****r | 8 |
| Filipe Cavalcanti | f****i@g****m | 5 |
| Rodrigo Dornelles | 3****s | 4 |
| Vítor Mussa | v****a@g****m | 4 |
| hevsouza | 7****n | 4 |
| Luiza Vilela Campos | 1****a | 3 |
| and 15 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 9
- Total pull requests: 61
- Average time to close issues: about 1 year
- Average time to close pull requests: 8 days
- Total issue authors: 5
- Total pull request authors: 5
- Average comments per issue: 1.0
- Average comments per pull request: 0.15
- Merged pull requests: 47
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 6
- Pull requests: 61
- Average time to close issues: about 1 month
- Average time to close pull requests: 8 days
- Issue authors: 3
- Pull request authors: 5
- Average comments per issue: 0.17
- Average comments per pull request: 0.15
- Merged pull requests: 47
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- aspeddro (4)
- gabriel-milan (2)
- isabelmeister (1)
- rfdornelles (1)
- laura-l-amaral (1)
Pull Request Authors
- aspeddro (44)
- isabelmeister (8)
- vilelaluiza (6)
- laura-l-amaral (2)
- d116626 (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 14,829 last-month
- Total dependent packages: 0
- Total dependent repositories: 18
- Total versions: 193
- Total maintainers: 2
pypi.org: basedosdados
Organizar e facilitar o acesso a dados brasileiros através de tabelas públicas no BigQuery.
- Homepage: https://github.com/basedosdados/sdk
- Documentation: https://basedosdados.readthedocs.io/
- License: MIT
-
Latest release: 2.0.2
published 11 months ago
Rankings
Maintainers (2)
Dependencies
- bs4 ==0.0.1
- pandas ==1.4.1
- requests ==2.27.1
- tqdm ==4.63.1
- google-cloud-storage *
- numpy *
- pandas *
- requests *
- Brotli ==1.0.9
- Jinja2 ==2.11.2
- MarkupSafe ==2.0.1
- PyYAML ==5.4.1
- Unidecode ==1.3.1
- basedosdados ==1.5.6
- bcj-cffi ==0.5.1
- cachetools ==4.2.2
- certifi ==2021.5.30
- cffi ==1.14.6
- charset-normalizer ==2.0.5
- click ==7.1.2
- google-api-core ==1.31.2
- google-auth ==1.35.0
- google-auth-oauthlib ==0.4.6
- google-cloud-bigquery ==1.28.0
- google-cloud-bigquery-storage ==1.1.0
- google-cloud-core ==1.7.2
- google-cloud-storage ==1.31.2
- google-crc32c ==1.1.5
- google-resumable-media ==1.3.3
- googleapis-common-protos ==1.53.0
- grpcio ==1.40.0
- idna ==3.2
- multivolumefile ==0.2.3
- numpy ==1.21.2
- oauthlib ==3.1.1
- packaging ==21.0
- pandas ==1.2.4
- pandas-gbq ==0.13.2
- protobuf ==3.18.0
- py7zr ==0.16.1
- pyaml ==20.4.0
- pyasn1 ==0.4.8
- pyasn1-modules ==0.2.8
- pycparser ==2.20
- pycryptodomex ==3.10.1
- pydata-google-auth ==1.2.0
- pyparsing ==2.4.7
- pyppmd ==0.16.1
- python-dateutil ==2.8.2
- pytz ==2021.1
- pyzstd ==0.14.4
- requests ==2.26.0
- requests-oauthlib ==1.3.0
- rsa ==4.7.2
- ruamel.yaml ==0.17.4
- ruamel.yaml.clib ==0.2.6
- six ==1.16.0
- texttable ==1.6.4
- tomlkit ==0.7.0
- tqdm ==4.50.2
- urllib3 ==1.26.6
- Automat ==20.2.0
- Deprecated ==1.2.13
- Protego ==0.1.16
- PyDispatcher ==2.0.5
- Scrapy ==2.5.1
- Twisted ==21.7.0
- attrs ==21.2.0
- certifi ==2021.10.8
- cffi ==1.15.0
- charset-normalizer ==2.0.7
- click ==7.1.2
- constantly ==15.1.0
- croniter ==1.0.15
- cryptography ==35.0.0
- cssselect ==1.1.0
- dataclasses-json ==0.5.6
- decorator ==5.1.0
- dirhash ==0.2.1
- diskcache ==5.2.1
- docker-image-py ==0.1.12
- docstring-parser ==0.12
- flyteidl ==0.21.6
- flytekit ==0.23.0
- grpcio ==1.41.0
- h2 ==3.2.0
- hpack ==3.0.0
- hyperframe ==5.2.0
- hyperlink ==21.0.0
- idna ==3.3
- importlib-metadata ==4.8.1
- incremental ==21.3.0
- itemadapter ==0.4.0
- itemloaders ==1.0.4
- jmespath ==0.10.0
- keyring ==23.2.1
- lxml ==4.6.3
- marshmallow ==3.14.0
- marshmallow-enum ==1.5.1
- marshmallow-jsonschema ==0.13.0
- mypy-extensions ==0.4.3
- natsort ==7.1.1
- numpy ==1.21.3
- pandas ==1.3.4
- parsel ==1.6.0
- pathspec ==0.9.0
- priority ==1.3.0
- protobuf ==3.19.0
- py ==1.10.0
- pyOpenSSL ==21.0.0
- pyarrow ==3.0.0
- pyasn1 ==0.4.8
- pyasn1-modules ==0.2.8
- pycparser ==2.20
- python-dateutil ==2.8.1
- python-json-logger ==2.0.2
- pytimeparse ==1.1.8
- pytz ==2018.4
- queuelib ==1.6.2
- regex ==2021.10.21
- requests ==2.26.0
- responses ==0.14.0
- retry ==0.9.2
- scantree ==0.0.1
- service-identity ==21.1.0
- six ==1.16.0
- sortedcontainers ==2.4.0
- statsd ==3.3.0
- typing-extensions ==3.10.0.2
- typing-inspect ==0.7.1
- urllib3 ==1.26.7
- w3lib ==1.22.0
- wrapt ==1.13.2
- zipp ==3.6.0
- zope.interface ==5.4.0
- DBI >= 1.1.1 imports
- bigrquery >= 1.4.0 imports
- cli >= 2.5.0 imports
- dbplyr >= 2.1.1 imports
- dotenv >= 1.0.2 imports
- dplyr >= 1.0.6 imports
- fs >= 1.5.0 imports
- glue >= 1.4.2 imports
- httr >= 1.4.2 imports
- magrittr >= 2.0.1 imports
- methods * imports
- purrr >= 0.3.4 imports
- readr >= 1.4.0 imports
- rlang >= 0.4.0 imports
- scales >= 1.1.1 imports
- stringr >= 1.4.0 imports
- tibble >= 3.1.1 imports
- typed >= 0.0.1 imports
- writexl >= 1.4.0 imports
- knitr * suggests
- rmarkdown * suggests
- testthat >= 3.0.0 suggests
- cachetools 4.2.4
- certifi 2021.10.8
- charset-normalizer 2.0.12
- ckanapi 4.6
- click 8.0.3
- colorama 0.4.4
- db-dtypes 1.0.0
- docopt 0.6.2
- fastavro 1.4.10
- google-api-core 1.31.5
- google-auth 1.35.0
- google-auth-oauthlib 0.5.1
- google-cloud-bigquery 2.30.1
- google-cloud-bigquery-storage 1.1.0
- google-cloud-core 2.2.3
- google-cloud-storage 1.42.3
- google-crc32c 1.3.0
- google-resumable-media 2.3.2
- googleapis-common-protos 1.55.0
- grpcio 1.44.0
- idna 3.3
- importlib-metadata 4.11.3
- jinja2 3.0.3
- loguru 0.6.0
- markupsafe 2.1.1
- numpy 1.21.5
- oauthlib 3.2.0
- packaging 21.3
- pandas 1.3.5
- pandas-gbq 0.17.4
- pandavro 1.6.0
- proto-plus 1.20.3
- protobuf 3.19.4
- pyaml 20.4.0
- pyarrow 6.0.0
- pyasn1 0.4.8
- pyasn1-modules 0.2.8
- pydata-google-auth 1.4.0
- pyparsing 3.0.7
- python-dateutil 2.8.2
- python-slugify 6.1.1
- pytz 2021.3
- pyyaml 6.0
- requests 2.27.1
- requests-oauthlib 1.3.1
- rsa 4.8
- ruamel.yaml 0.17.10
- ruamel.yaml.clib 0.2.6
- setuptools 65.5.1
- shapely 1.8.5.post1
- six 1.16.0
- text-unidecode 1.3
- toml 0.10.2
- tomlkit 0.7.0
- tqdm 4.50.2
- typing-extensions 4.1.1
- urllib3 1.26.9
- win32-setctime 1.1.0
- zipp 3.7.0
- Jinja2 3.0.3
- ckanapi 4.6
- click 8.0.3
- google-cloud-bigquery 2.30.1
- google-cloud-bigquery-storage 1.1.0
- google-cloud-storage 1.42.3
- importlib-metadata ^4.11.3
- loguru ^0.6.0
- pandas ^1.3.5
- pandas-gbq ^0.17.4
- pandavro ^1.6.0
- pyaml 20.4.0
- pyarrow 6.0.0
- python >=3.7.1,<3.11
- ruamel.yaml 0.17.10
- shapely ^1.6.0
- toml ^0.10.2
- tomlkit 0.7.0
- tqdm 4.50.2
- click ==8.0.3
- actions/checkout v2 composite
- actions/setup-python v2 composite
- dask ==2.9.1
- typer ==0.6.1
- builder latest build
- python 3.11-slim build