Pacote para download e processamento dos microdados da PNAD Contínua do IBGE.
Project description
pnadium
Pacote para download e processamento dos microdados da PNAD Contínua do IBGE, facilitando o acesso aos microdados trimestrais, que contém a pesquisa básica e os microdados anuais, que também contém pesquisas suplementares (por trimestre ou visita).
Instalação
Para instalar o pacote pnadium, você pode clonar o repositório e instalar localmente:
git clone https://github.com/ggximenez/pnadium.git
cd pnadium
pip install .
Ou, se preferir, instale diretamente via pip:
pip install pnadium
Uso
O pacote pnadium possui dois submódulos: trimestral e anual. Cada submódulo oferece funções para manipular os dados correspondentes. O submódulo trimestral se refere aos microdados de divulgação trimestral, respectivos à pesquisa básica da PNAD contínua. Já o submódulo anual se refere aos microdados de divulgação anual, que contenham pesquisas suplementares (temáticas), que são divulgados por trimestre ou por visita ao domicílio. Para saber mais, acesse aqui
Importação dos Submódulos
import pnadium
# Acessando o submódulo trimestral
from pnadium import trimestral
# Acessando o submódulo anual
from pnadium import anual
Funções Disponíveis
Submódulo trimestral
map_files(): Mapeia os arquivos trimestrais disponíveis no FTP do IBGE.download(ano, t, caminho=None, colunas=None, save_file=None): Faz o download e processamento dos dados trimestrais para o ano (ano) e trimestre (t) especificados. Os argumentos opcionais são:caminho,colunasesave_file.caminhoé uma string que indica o caminho, incluindo nome, do arquivo da base de dados a ser salvo em.parquet;colunasé uma lista de strings com os nomes das colunas de interesse, caso queira carregar apenas parte das colunas e não a base de dados integral; esave_fileé uma variável bool, que quando assume o valorTruesalva o arquivo da base de dados, caso contrário apenas retorna o DataFrame à variável indicada.consulta_arquivos(): Retorna um DataFrame com os arquivos trimestrais disponíveis.consulta_var(cod=None, desc=None): Permite consultar o dicionário de variáveis trimestrais por código (cod) ou descrição (desc).
Submódulo anual
Observação: No submódulo anual, todas as funções requerem o argumento adicional tipo, que especifica o tipo de dados a serem manipulados. Além disso, a função consulta_var também requer os argumentos ano e t.
Argumento tipo
O argumento tipo define o tipo de arquivo anual que será utilizado. Os valores possíveis são:
't': Para dados por trimestre.'v': Para dados por visita.
Funções
map_files(tipo): Mapeia os arquivos anuais disponíveis no FTP do IBGE para otipoespecificado.download(ano, t, tipo, caminho=None, colunas=None, save_file=True): Faz o download e processamento dos dados anuais para o ano (ano), período (t) etipoespecificados. O argumentocaminhoé opcional. Se não for especificado ocaminho, os dados serão salvos no diretório atual. O argumento opcionalcolunas: agora você pode passar uma lista com o código das colunas de interesse, e o DataFrame final conterá apenas as colunas de interesse e as colunas chave; esave_fileé uma variável bool, que quando assume o valorTruesalva o arquivo da base de dados, caso contrário apenas retorna o DataFrame à variável indicada.consulta_arquivos(tipo): Retorna um DataFrame com os arquivos anuais disponíveis para otipoespecificado.consulta_var(ano, t, tipo, cod=None, desc=None): Permite consultar o dicionário de variáveis anuais para o ano (ano), período (t) etipoespecificados, podendo filtrar por código (cod) ou descrição (desc).
Exemplos de Uso
Exemplo 1: Consultar Arquivos Disponíveis
import pnadium
# Consultar arquivos trimestrais disponíveis
df_trimestral = pnadium.trimestral.consulta_arquivos()
print(df_trimestral)
# Consultar arquivos anuais disponíveis (tipo 'v' - visita)
df_anual_visita = pnadium.anual.consulta_arquivos(tipo='v')
print(df_anual_visita)
# Consultar arquivos anuais disponíveis (tipo 't' - trimestre)
df_anual_trimestre = pnadium.anual.consulta_arquivos(tipo='t')
print(df_anual_trimestre)
Exemplo 2: Fazer Download dos Dados
# Download dos dados do 1º trimestre de 2020 (dados trimestrais)
pnadium.trimestral.download(ano=2020, t=1, caminho='caminho/para/salvar', save_file=True)
No caso acima, a base de dados final em arquivo .parquet será salva no caminho designado. Se quiser atribuir o DataFrame final a uma variável sem salvar a base de dados em arquivo .parquet, basta designar uma variável à função download, no caso abaixo pnad_01_20:
# Download dos dados do 1º trimestre de 2020 (dados trimestrais)
pnad_01_20 = pnadium.trimestral.download(ano=2020, t=1)
Para salvar um arquivo .parquet com a base de dados e também obter os dados em uma variável, basta combinar as duas abordagens:
# Download dos dados do 1º trimestre de 2020 (dados trimestrais)
pnad_01_20 = pnadium.trimestral.download(ano=2020, t=1, caminho='caminho/para/salvar', save_file=True)
Para economizar memória em seu ambiente virtual, você pode limitar o DataFrame final às colunas de interesse através do argumento colunas, descartando colunas com informações que não serão utilizadas em seu estudo. No exemplo a seguir, além das colunas necessárias para as chaves, apenas as seguintes serão carregadas:
"V1028": Peso do domicílio e das pessoas com calibragem por projeção da população;"V2001": Número de pessoas no domicílio;"V2005": Condição da pessoa no domicílio (Responsável, cônjuge, filho(a), etc);"V2007": Sexo da pessoa;"V2009": Idade da pessoa em anos;"V2010": Cor ou raça da pessoa.
Assim é o código a ser executado:
# Colunas de interesse:
cols = [
"V1028",
"V2001",
"V2005",
"V2007",
"V2009",
"V2010",
]
# Download dos dados do 1º trimestre de 2020 (dados trimestrais), apenas com colunas de interesse
pnad_01_20 = pnadium.trimestral.download(ano=2020, t=1, colunas = cols)
As colunas usadas para criar as chaves de domicílio e de pessoa serão sempre carregadas:
"UPA": Código da Unidade Primária de Amostragem;"V1008": Número de seleção do domicílio;"V1014": Número do painel;"V2003": Número de ordem do morador do domicílio.
Com as colunas base são criadas duas chaves, uma para domicílio e outra para a pessoa, de acordo com a composição das chaves informada pelo IBGE :
COD_FAM: Código do domicílio ou família, composto por"UPA" + "V1008" + "V1014";COD_PESSOA: Código da pessoa ou morador, composto por"UPA" + "V1008" + "V1014" + "V2003"
Assim, o DataFrame final sempre seguirá o seguinte formato:
| index | UPA | V1008 | V1014 | V2003 | COD_FAM | COD_PESSOA | Colunas de interesse... |
|---|---|---|---|---|---|---|---|
| 0 | 110000016 | 01 | 7 | 01 | 110000016017 | 11000001601701 | ... |
| 1 | 110000016 | 01 | 7 | 02 | 110000016017 | 11000001601702 | ... |
| ... | ... | ... | ... | ... | ... | ... | ... |
Certifique-se de consultar os códigos das colunas no dicionário dos microdados de interesse. Pesquisas suplementares tem códigos distintos, sendo necessária a consulta previamente.
Exemplo 3: Consultar Variáveis
# Consultar variáveis trimestrais que contêm 'renda' na descrição
variaveis_trimestral = pnadium.trimestral.consulta_var(desc='renda')
print(variaveis_trimestral)
# Consultar variáveis anuais para o ano 2020, período 1, tipo 'v', pelo código 'V2009'
variaveis_anual = pnadium.anual.consulta_var(ano=2020, t=1, tipo='v', cod='V2009')
print(variaveis_anual)
# Consultar variáveis anuais para o ano 2020, período 2, tipo 't', que contêm 'emprego' na descrição
variaveis_anual_emprego = pnadium.anual.consulta_var(ano=2020, t=2, tipo='t', desc='emprego')
print(variaveis_anual_emprego)
Detalhes sobre os argumentos
Argumento tipo no Submódulo anual
O argumento tipo determina o conjunto de dados anuais que será utilizado:
- Tipo 'v' (Visita): Refere-se aos dados coletados por visita domiciliar. São realizadas 5 visitas ao longo do ano.
- Tipo 't' (Trimestre): Refere-se aos dados agregados por trimestre.
Argumentos ano e t na Função consulta_var do Submódulo anual
A função consulta_var no submódulo anual requer os argumentos ano e t (período) porque o dicionário de variáveis pode variar de acordo com o ano e o período específico. Isso garante que a consulta retorne informações precisas para o conjunto de dados desejado.
Dependências
O pacote pnadium depende das seguintes bibliotecas:
pandasnumpyunidecodeappdirs
Certifique-se de que elas estejam instaladas no seu ambiente Python.
Licença
Este projeto está licenciado sob a licença MIT - consulte o arquivo LICENSE para mais detalhes.
Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou pull requests no GitHub.
Autor
- Gustavo G. Ximenez
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pnadium-0.23.tar.gz.
File metadata
- Download URL: pnadium-0.23.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25c7698d8a9c03907bce1f5d71b1ba86e3d0f86bee0c839cb8742c58f8b0d098
|
|
| MD5 |
748e966632c97ada088795bf17522068
|
|
| BLAKE2b-256 |
63141cb238bf6c0418f4461b7b078bb875808dd38e42ecd2e0dd267bc16bcdf0
|
File details
Details for the file pnadium-0.23-py3-none-any.whl.
File metadata
- Download URL: pnadium-0.23-py3-none-any.whl
- Upload date:
- Size: 12.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28aaadcb48196ed4ad82970916de1fa4819335fe1b0267f81fe6bfb96d9d1564
|
|
| MD5 |
74afd59f7889d10bc799d7e52b9fe925
|
|
| BLAKE2b-256 |
d7c6baeff5b912784e435873f8292a2e5ba44414cd326cf88bd2e1fec03d960c
|