Pandas: como criar uma coluna booleana com base na condição


Você pode usar a seguinte sintaxe básica para criar uma coluna booleana baseada em condições em um DataFrame do pandas:

 df[' boolean_column '] = np. where (df[' some_column '] > 15, True , False )

Esta sintaxe específica cria uma nova coluna booleana com dois valores possíveis:

  • Verdadeiro se o valor em some_column for maior que 15.
  • Falso se o valor em some_column for menor ou igual a 15.

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: Crie uma coluna booleana com base na condição no Pandas

Suponha que temos o seguinte DataFrame do pandas que contém informações sobre vários jogadores de basquete:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' points ': [5, 17, 7, 19, 12, 13, 9, 24]})

#view DataFrame
print (df)

  team points
0 to 5
1 to 17
2 to 7
3 to 19
4 B 12
5 B 13
6 B 9
7 B 24   

Podemos usar o código a seguir para criar uma nova coluna chamada good_player que retorna True se o valor na coluna de pontos for maior que 15 ou False caso contrário:

 import numpy as np

#create new boolean column based on value in points column
df[' good_player '] = np. where (df[' points '] > 15, True , False )

#view updated DataFrame
print (df)

  team points good_player
0 To 5 False
1 To 17 True
2 To 7 False
3 To 19 True
4 B 12 False
5 B 13 False
6 B 9 False
7 B 24 True

Observe que a nova coluna chamada good_player contém apenas dois valores: True ou False .

Podemos usar a função dtypes() para verificar se a nova coluna good_player é de fato uma coluna booleana:

 #display data type of good_player column
df[' good_player ']. dtype

dtype('bool')

A nova coluna good_player é de fato uma coluna booleana.

Observe também que você pode retornar valores numéricos como 1 e 0 em vez de True e False se desejar:

 import numpy as np

#create new boolean column based on value in points column
df[' good_player '] = np. where (df[' points '] > 15, 1 , 0 )

#view updated DataFrame
print (df)

  team points good_player
0 to 5 0
1 To 17 1
2 to 7 0
3 A 19 1
4 B 12 0
5 B 13 0
6 B 9 0
7 B 24 1

A coluna good_player agora contém 1 se o valor correspondente na coluna de pontos for maior que 15.

Caso contrário, contém o valor 0 .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em pandas:

Como selecionar linhas com base em múltiplas condições no Pandas
Como criar uma nova coluna baseada em uma condição no Pandas
Como filtrar um DataFrame do Pandas em múltiplas condições

Add a Comment

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