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