Como escrever uma declaração de caso em pandas (com exemplo)


Uma instrução case é um tipo de instrução que percorre as condições e retorna um valor quando a primeira condição é atendida.

A maneira mais simples de implementar uma instrução case em um DataFrame do Pandas é usar a função NumPywhere() , que usa a seguinte sintaxe básica:

 df[' new_column '] = np. where (df[' col2 ']<9, 'value1',
                   n.p. where (df[' col2 ']<12, 'value2',
                   n.p. where (df[' col2 ']<15, 'value3', 'value4')))

Esta função específica analisa o valor na coluna chamada col2 e retorna:

  • valor1 ” se o valor em col2 for menor que 9
  • valor2 ” se o valor em col2 for menor que 12
  • valor3 ” se o valor em col2 for menor que 15
  • valor4 ” se nenhuma das condições anteriores for verdadeira

O exemplo a seguir mostra como usar esta função na prática.

Exemplo: declaração de caso em Pandas

Suponha que temos o seguinte DataFrame do pandas:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' player ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
                   ' points ': [6, 8, 9, 9, 12, 14, 15, 17, 19, 22]})

#view DataFrame
df

	player points
0 1 6
1 2 8
2 3 9
3 4 9
4 5 12
5 6 14
6 7 15
7 8 17
8 9 19
9 10 22

Podemos usar a seguinte sintaxe para escrever uma instrução case que cria uma nova coluna chamada classe cujos valores são determinados pelos valores na coluna de pontos :

 #add 'class' column using case-statement logic
df[' class '] = np. where (df[' points ']<9, 'Bad',
              n.p. where (df[' points ']<12, 'OK',
              n.p. where (df[' points ']<15, 'Good', 'Great')))

#view updated DataFrame
df

	player points class
0 1 6 Bad
1 2 8 Bad
2 3 9 OK
3 4 9 OK
4 5 12 Good
5 6 14 Good
6 7 15 Great
7 8 17 Great
8 9 19 Great
9 10 22 Great

A instrução case analisou o valor na coluna de pontos e retornou:

  • Ruim ” se o valor na coluna de pontos for menor que 9
  • OK ” se o valor na coluna de pontos for menor que 12
  • Bom ” se o valor na coluna de pontos for inferior a 15
  • Ótimo ” se nenhuma das condições anteriores for verdadeira

Nota : Você pode encontrar a documentação completa da função NumPywhere() aqui .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns no Pandas:

Como criar uma nova coluna baseada em uma condição no Pandas
Como usar a função NumPy Where() com múltiplas condições

Add a Comment

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