Skip to main content

Pacote para download e processamento dos microdados da PNAD Contínua do IBGE.

Project description

DOI

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, colunas e save_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; e save_file é uma variável bool, que quando assume o valor True salva 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 o tipo especificado.
  • 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) e tipo especificados. O argumento caminho é opcional. Se não for especificado o caminho, os dados serão salvos no diretório atual. O argumento opcional colunas: 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; e save_file é uma variável bool, que quando assume o valor True salva 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 o tipo especificado.
  • 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) e tipo especificados, 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:

  • pandas
  • numpy
  • unidecode
  • appdirs

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pnadium-0.24.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pnadium-0.24-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file pnadium-0.24.tar.gz.

File metadata

  • Download URL: pnadium-0.24.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.23

File hashes

Hashes for pnadium-0.24.tar.gz
Algorithm Hash digest
SHA256 b09f22ddd9d747ed3c91a227ca5b47ab41530cb16e21553a0c63c86798891667
MD5 8dd1323805a461355a7bf1176155cf5d
BLAKE2b-256 6decbde3ba42d95004fd129dec721b546bb817d61bfa7ac8bdaaeb23cf1c969b

See more details on using hashes here.

File details

Details for the file pnadium-0.24-py3-none-any.whl.

File metadata

  • Download URL: pnadium-0.24-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.23

File hashes

Hashes for pnadium-0.24-py3-none-any.whl
Algorithm Hash digest
SHA256 33b37fa9cd77f9de52b374c8de3c37d2d76aed0883c8562a053250a22265bd84
MD5 a749b84525c69f567306b7a5b1042b29
BLAKE2b-256 7bb55ea5b623fd237223be64fc48b70617d92abcb8c8e5d5a34e3063a9894f84

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page