Pandas: selecione linhas do dataframe usando uma série booleana


Você pode usar a seguinte sintaxe básica para selecionar linhas em um DataFrame do pandas com base nos valores de uma série booleana:

 #define boolean series
bools = pd. Series ([ True , False , True , True , False , False , False , True ])

#select rows in DataFrame based on values in boolean series
df[bools. values ]

Isso permite que você selecione cada uma das linhas no DataFrame do pandas onde o valor correspondente na série booleana é True .

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

Exemplo: selecione linhas no DataFrame do Pandas usando uma série booleana

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', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, 22, 19, 14, 14, 11, 20, 28],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

  team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7:28 4 12

Podemos usar a seguinte sintaxe para selecionar todas as linhas no DataFrame onde o valor correspondente em uma série booleana é True :

 #define boolean series
bools = pd. Series ([ True , False , True , True , False , False , False , True ])

#select rows in DataFrame based on values in boolean series
df[bools. values ]

     team points assists rebounds
0 A 18 5 11
2 C 19 7 10
3 D 14 9 6
7:28 4 12

Observe que as únicas linhas retornadas são aquelas para as quais o valor correspondente na série booleana é True .

Observe também que você pode usar a seguinte sintaxe para selecionar apenas linhas na coluna “pontos” do DataFrame onde o valor correspondente na série booleana é True .

 #define boolean series
bools = pd. Series ([ True , False , True , True , False , False , False , True ])

#select rows in points column based on values in boolean series
df[' points '][bools. values ]

0 18
2 19
3 14
7 28
Name: points, dtype: int64

Observe que as únicas linhas retornadas pela coluna “pontos” são aquelas onde o valor correspondente na série booleana é True .

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em pandas:

Como filtrar linhas com base no comprimento da string no Pandas
Como selecionar linhas sem valores NaN no Pandas
Como selecionar linhas com base nos valores das colunas no Pandas

Add a Comment

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