Como criar variáveis categóricas em pandas (com exemplos)


Você pode usar qualquer um dos seguintes métodos para criar uma variável categórica em pandas:

Método 1: Criar uma variável categórica do zero

 df[' cat_variable '] = [' A ', ' B ', ' C ', ' D ']

Método 2: Criar uma variável categórica a partir de uma variável numérica existente

 df[' cat_variable '] = pd. cut (df[' numeric_variable '],
                            bins=[ 0,15,25 ,float(' Inf ') ] ,
                            labels=[' Bad ', ' OK ', ' Good '])

Os exemplos a seguir mostram como usar cada método na prática.

Exemplo 1: Crie uma variável categórica do zero

O código a seguir mostra como criar um DataFrame do pandas com uma variável categórica chamada team e uma variável numérica chamada points :

 import pandas as pd

#create DataFrame with one categorical variable and one numeric variable
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [12, 15, 19, 22, 24, 25, 26, 30]})

#view DataFrame
print (df)

  team points
0 to 12
1 B 15
2 C 19
3 D 22
4 E 24
5 F 25
6 G 26
7:30 a.m.

#view data type of each column in DataFrame
print ( df.dtypes )

team object
int64 dots
dtype:object

Usando df.dtypes podemos ver o tipo de dados de cada variável no DataFrame.

Nós podemos ver:

  • A variável da equipe é um objeto .
  • A variável points é um número inteiro .

Em Python, um objeto é equivalente a um caractere ou uma variável “categórica”. Assim, a variável equipe é uma variável categórica.

Exemplo 2: Crie uma variável categórica a partir de uma variável numérica existente

O código a seguir mostra como criar uma variável categórica chamada status a partir da variável numérica existente chamada pontos no DataFrame:

 import pandas as pd

#create DataFrame with one categorical variable and one numeric variable
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [12, 15, 19, 22, 24, 25, 26, 30]})

#create categorical variable 'status' based on existing numerical 'points' variable
df[' status '] = pd. cut (df[' points '],
                      bins=[ 0,15,25 ,float(' Inf ') ] ,
                      labels=[' Bad ', ' OK ', ' Good '])

#view updated DataFrame
print (df)

  team points status
0 To 12 Bad
1 B 15 Bad
2 C 19 OK
3 D 22 OK
4 E 24 OK
5 F 25 OK
6 G 26 Good
7:30 a.m. Good

Usando a função cut() , criamos uma nova variável categórica chamada status que assume os seguintes valores:

  • Ruim ‘ se o valor na coluna de pontos for menor ou igual a 15.
  • Caso contrário, ‘ OK ‘ se o valor na coluna de pontos for menor ou igual a 25.
  • Caso contrário, “ Bom ”.

Observe que ao usar a função cut() , o número de rótulos deve ser um a menos que o número de bins .

Em nosso exemplo, usamos quatro valores para caixas para definir as bordas das caixas e três valores para rótulos para especificar os rótulos a serem usados para a variável categórica.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns do panda:

Como criar variáveis fictícias no Pandas
Como converter uma variável categórica em numérica no Pandas
Como converter valores booleanos em valores inteiros no Pandas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *