Hoje nós vamos aprender como recodificar variáveis no python utilizando a biblioteca Pandas. Recodificar uma variável é o nome que damos ao processo de transformar uma variável contínua em categorias. É muito útil para situações que desejamos representar os dados por categorias discretas. Um exemplo é quando desejamos transformar um valor numérico contínuo com renda, para uma variável qualitativa como: alta, média, baixa.
Sumário
Recodificar variáveis no python
Para realizar a recodificação de variáveis no Python usando o Pandas, é importante começar preparando os dados. Se você não sabe como importar dados no Python, recomendo que dê uma olhada em nosso material sobre esse assunto (Importar dados no Python). Nesta aula, você aprenderá o passo a passo de como fazer a leitura dos dados no Python.
Após importar seus dados, é fundamental realizar uma checagem por meio de uma análise descritiva para garantir a qualidade das informações. Para isso, sugiro que leia nosso conteúdo sobre estatística descritiva no Python. Dessa forma, você poderá verificar a distribuição dos dados, identificar valores discrepantes e entender melhor as características da sua amostra.
Com os dados preparados e checados, você poderá começar a recodificação das variáveis. Isso significa alterar os valores de uma variável para uma nova escala ou atribuir novas categorias a ela. No Python, essa tarefa pode ser realizada facilmente utilizando as funções do Pandas.
Importação dos dados
Para este tutorial, utilizaremos os dados de projeção populacional do IBGE. Para tornar o processo mais fácil, eu disponibilizei os dados no repositório do Balaio Científico no Github. Você pode acessá-los através do seguinte link: Projeção Populacional IBGE. Dessa forma, você poderá seguir os exemplos e práticas sem precisar buscar os dados em outro lugar.
Para realizar a importação de dados no Python utilizando o Pandas, é necessário ter o Python instalado em seu computador juntamente com a biblioteca Pandas. Com essas ferramentas, podemos utilizar a função pd.read_csv()
para importar arquivos.
Para isso, basta fornecer o link do dataset que iremos utilizar, como uma string entre os parênteses. O comando ficará de acordo com o exemplo abaixo:
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/balaiocientifico/dataset/main/projecao_pop_2021.txt', encoding='latin-1', sep='\t')
Caso você não tenha o Python instalado em seu computador, uma alternativa é utilizar o Google Colab, uma plataforma gratuita disponibilizada pelo Google que permite o uso do Python juntamente com diversas bibliotecas pré-instaladas, incluindo o Pandas.
Ao utilizar o Google Colab, você não precisa se preocupar com a instalação de bibliotecas e pode começar a trabalhar imediatamente. Além disso, a plataforma permite compartilhar e colaborar em tempo real com outras pessoas, tornando-a uma opção conveniente para trabalhos em equipe ou para quem está começando a explorar o mundo da programação em Python. Se você ainda não conhece o Google Colab convido a assistir o vídeo a seguir em que apresento a plataforma a você.
Se você seguiu todos os passos descritos acima, ao executar o código, você verá uma imagem semelhante à que apresentamos abaixo. Nessa imagem, estamos utilizando o Google Colab e o conjunto de dados que recomendamos para esta aula.
É importante ressaltar que os resultados podem variar dependendo dos dados utilizados e das análises realizadas. Portanto, recomendamos que você siga as etapas com atenção e, se necessário, faça ajustes e adaptações para obter resultados mais precisos e relevantes para o seu caso específico.
Recodificar variáveis
Agora, vamos transformar as variáveis escalares em categóricas. Para isso, seguiremos dois passos: o primeiro será definir a categoria apropriada para cada variável, e em seguida, escreveremos um código em Python para criar uma nova variável utilizando a biblioteca NumPy.
Categorias populacionais
O próximo passo é criar categorias para a variável de estimativa populacional. Isso é útil quando queremos transformar uma variável numérica contínua em uma variável categórica, facilitando a análise dos dados. Para isso, é preciso definir previamente as categorias, que podem ser baseadas em critérios específicos ou em definições já existentes.
Com o objetivo de fins didáticos, podemos definir três categorias arbitrariamente: cidade pequena, cidade média e cidade grande. É importante ressaltar que essa definição é apenas um exemplo, e você pode adaptá-la ou seguir critérios definidos por outras fontes. O objetivo deste post é ensinar a técnica, e não realizar uma pesquisa ou estabelecer critérios sobre o tamanho das cidades.
Tamanho da cidade | Intervalo populacional |
Cidade pequena | Até 50.000 habitantes |
Cidade média | Entre 50.000 até 150.000 habitantes |
Cidade grande | Mais de 150.000 habitantes |
Recodificando as variáveis no python
Agora que definimos as categorias, vamos dar continuidade ao processo. Primeiramente, é necessário fazer a importação da biblioteca NumPy, caso você ainda não tenha feito isso. Neste exemplo, utilizaremos a função numpy.select
. É importante ressaltar que existem outras formas de realizar este procedimento, mas para o nível introdutório, o uso de numpy.select
torna o processo mais explícito e evidente para aqueles que estão aprendendo.
# definir condições e escolhas para pop_category
conditions = [
df['pop_est'] < 50000,
(df['pop_est']) >= 50000 & (df['pop_est'] <= 150000),
df['pop_est'] > 150000
]
choices = [
'Cidade Pequena',
'Cidade Média',
'Cidade Grande'
]
# criar nova coluna "pop_category" baseada em condições e escolhas
df['pop_category'] = np.select(conditions, choices)
No código acima, nós criamos uma nova coluna noDataFrame utilizando a função np.select()
, que é utilizada para definir condições baseadas em valores de uma ou mais colunas do DataFrame e atribuir uma categoria específica para cada uma dessas condições.
As variáveis utilizadas neste código possuem nomes em inglês, que é uma convenção comum na programação em Python. A variável conditions
é uma lista que contém as condições que serão utilizadas para atribuir cada categoria. Cada condição é representada por uma expressão lógica que compara os valores da coluna “pop_est” com um número específico. No caso deste código, a primeira condição define que a população é menor que 50.000 habitantes, a segunda condição define que a população está entre 50.000 e 150.000 habitantes e a terceira condição define que a população é maior que 150.000 habitantes.
A variável choices
é uma lista que contém as categorias que serão atribuídas para cada uma das condições. No caso deste código, conforme definimos acima, as categorias definidas são “Cidade Pequena”, “Cidade Média” e “Cidade Grande”.
Por fim, a nova coluna “pop_category” é criada utilizando a função np.select()
. Essa função utiliza as condições definidas na variável conditions
para verificar em qual categoria cada valor da coluna “pop_est” se encaixa, e atribui a categoria correspondente definida na variável choices
. A nova coluna é então adicionada ao DataFrame original.
Dataset com variáveis recategorizadas
Pronto, você criou uma nova categoria a partir de uma outra variável. Agora você pode copiar o código e adaptar os nomes das variáveis para o seu caso específico. Veja na imagem abaixo como nosso dataframe ficou após a criação das novas categorias.
Excelente, você criou uma nova categoria com base em uma variável existente em seu DataFrame. O código é bastante versátil e pode ser facilmente adaptado para outras situações.
Caso você queira adicionar novas categorias ou alterar as condições existentes, basta alterar as listas conditions
e choices
de acordo com suas necessidades.
Além disso, se você tiver dúvidas ou precisar de ajuda para adaptar o código, não hesite em deixar um comentário abaixo. Estamos sempre prontos para ajudar!
Conteúdo suplementar
Se você estiver procurando por conteúdo complementar, pode assistir à aula que gravamos e disponibilizamos em nosso canal no YouTube. Nele, você encontrará diversos tutoriais e dicas sobre programação em Python e outras áreas relacionadas à ciência de dados.
Não deixe de se inscrever em nosso canal e seguir o Balaio Científico em todas as redes sociais para ficar por dentro das novidades e receber conteúdo exclusivo. Acreditamos que o aprendizado contínuo é fundamental para o desenvolvimento pessoal e profissional, e estamos comprometidos em compartilhar conhecimento de qualidade com nossa comunidade.