Na indexação booleana, selecionaremos subconjuntos de dados com base nos valores reais dos dados no DataFrame e não em seus rótulos de linha / coluna ou localizações de inteiros. Na indexação booleana, usamos um vetor booleano para filtrar os dados. 
 

A indexação booleana é um tipo de indexação que usa valores reais dos dados no DataFrame. Na indexação booleana, podemos filtrar dados de quatro maneiras - 
 

  • Acessando um DataFrame com um índice booleano
  • Aplicar uma máscara booleana a um dataframe
  • Mascarando dados com base no valor da coluna
  • Mascarando dados com base no valor do índice

Acessando um DataFrame com um índice booleano: 
Para acessar um dataframe com um índice booleano, temos que criar um dataframe no qual o índice do dataframe contenha um valor booleano que seja “True” ou “False”. Por exemplo 
 

# importing pandas as pd
import pandas as pd
  
# dictionary of lists
dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"],
        'degree': ["MBA", "BCA", "M.Tech", "MBA"],
        'score':[90, 40, 80, 98]}
  
df = pd.DataFrame(dict, index = [True, False, True, False])
  
print(df)

Saída: 
 

Agora criamos um dataframe com índice booleano depois que o usuário pode acessar um dataframe com a ajuda do índice booleano. O usuário pode acessar um dataframe usando três funções que são .loc [], .iloc [], .ix [] 
 

Acessando um Dataframe com um índice booleano usando .loc []

Para acessar um dataframe com um índice booleano usando .loc [], simplesmente passamos um valor booleano (Verdadeiro ou Falso) em uma função .loc []. 
 

# importing pandas as pd
import pandas as pd
  
# dictionary of lists
dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"],
        'degree': ["MBA", "BCA", "M.Tech", "MBA"],
        'score':[90, 40, 80, 98]}
 
# creating a dataframe with boolean index
df = pd.DataFrame(dict, index = [True, False, True, False])
 
# accessing a dataframe using .loc[] function
print(df.loc[True])

Saída: 
 

Acessando um Dataframe com um índice booleano usando .iloc []

Para acessar um dataframe usando .iloc [], temos que passar um valor booleano (True ou False), mas a função iloc [] aceita apenas números inteiros como argumento, então ele irá gerar um erro, então só podemos acessar um dataframe quando passarmos um número inteiro no código de função iloc [] 
1: 
 

# importing pandas as pd
import pandas as pd
  
# dictionary of lists
dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"],
        'degree': ["MBA", "BCA", "M.Tech", "MBA"],
        'score':[90, 40, 80, 98]}
 
# creating a dataframe with boolean index 
df = pd.DataFrame(dict, index = [True, False, True, False])
 
# accessing a dataframe using .iloc[] function
print(df.iloc[True])

Saída: 
 

TypeError

Código # 2: 
 

# importing pandas as pd
import pandas as pd
  
# dictionary of lists
dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"],
        'degree': ["MBA", "BCA", "M.Tech", "MBA"],
        'score':[90, 40, 80, 98]}
 
# creating a dataframe with boolean index 
df = pd.DataFrame(dict, index = [True, False, True, False])
  
 
# accessing a dataframe using .iloc[] function
print(df.iloc[1])

Saída: 
 

Acessando um Dataframe com um índice booleano usando .ix []

Para acessar um dataframe usando .ix [], temos que passar o valor booleano (Verdadeiro ou Falso) e o valor inteiro para a função .ix [] porque, como sabemos, a função .ix [] é um híbrido de .loc [] e função .iloc []. 
Código # 1: 
 

# importing pandas as pd
import pandas as pd
  
# dictionary of lists
dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"],
        'degree': ["MBA", "BCA", "M.Tech", "MBA"],
        'score':[90, 40, 80, 98]}
 
# creating a dataframe with boolean index
df = pd.DataFrame(dict, index = [True, False, True, False])
  
 
# accessing a dataframe using .ix[] function
print(df.ix[True])

Saída: 
 

Código # 2: 
 

# importing pandas as pd
import pandas as pd
  
# dictionary of lists
dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"],
        'degree': ["MBA", "BCA", "M.Tech", "MBA"],
        'score':[90, 40, 80, 98]}
 
# creating a dataframe with boolean index
df = pd.DataFrame(dict, index = [True, False, True, False])
  
 
# accessing a dataframe using .ix[] function
print(df.ix[1])

Saída: 
 

  
Aplicando uma máscara booleana a um dataframe: 
Em um dataframe podemos aplicar uma máscara booleana para fazer isso, podemos usar __getitems__ ou [] acessor. Podemos aplicar uma máscara booleana fornecendo uma lista de True e False do mesmo comprimento que a contida em um dataframe. Quando aplicamos uma máscara booleana, ela imprimirá apenas aquele dataframe no qual passamos um valor booleano True. Para baixar o arquivo CSV “ nba1.1 ” clique aqui .
Código # 1: 
 

# importing pandas as pd
import pandas as pd
  
# dictionary of lists
dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"],
        'degree': ["MBA", "BCA", "M.Tech", "MBA"],
        'score':[90, 40, 80, 98]}
  
df = pd.DataFrame(dict, index = [0, 1, 2, 3])
  
 
 
print(df[[True, False, True, False]])

Saída: 
 

Código # 2: 
 

# importing pandas package
import pandas as pd
  
# making data frame from csv file
data = pd.read_csv("nba1.1.csv")
  
df = pd.DataFrame(data, index = [0, 1, 2, 3, 4, 5, 6,
                                 7, 8, 9, 10, 11, 12])
 
  
df[[True, False, True, False, True,
    False, True, False, True, False,
                True, False, True]]

Saída: 
 

  
Mascarando dados com base no valor da coluna: 
em um dataframe podemos filtrar dados com base em um valor de coluna para filtrar os dados, podemos aplicar certas condições no dataframe usando diferentes operadores como ==,>, <, <=,> =. Quando aplicamos esses operadores no dataframe, eles produzem uma série de verdadeiro e falso. Para baixar o CSV “nba.csv”, clique aqui .
Código # 1: 
 

# importing pandas as pd
import pandas as pd
  
# dictionary of lists
dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"],
        'degree': ["BCA", "BCA", "M.Tech", "BCA"],
        'score':[90, 40, 80, 98]}
 
# creating a dataframe
df = pd.DataFrame(dict)
  
# using a comparison operator for filtering of data
print(df['degree'] == 'BCA')

Saída: 
 

Código # 2: 
 

# importing pandas package
import pandas as pd
  
# making data frame from csv file
data = pd.read_csv("nba.csv", index_col ="Name")
  
# using greater than operator for filtering of data
print(data['Age'] > 25)

Saída: 
 

  
Mascarando dados com base no valor do índice: 
Em um dataframe podemos filtrar os dados com base no valor de uma coluna para filtrar os dados, podemos criar uma máscara com base nos valores do índice usando diferentes operadores como ==,>, <, etc…. Para baixar o arquivo CSV “ nba1.1 ” clique aqui .
Código # 1: 
 

# importing pandas as pd
import pandas as pd
  
# dictionary of lists
dict = {'name':["aparna", "pankaj", "sudhir", "Geeku"],
        'degree': ["BCA", "BCA", "M.Tech", "BCA"],
        'score':[90, 40, 80, 98]}
  
 
df = pd.DataFrame(dict, index = [0, 1, 2, 3])
 
mask = df.index == 0
 
print(df[mask])

Saída: 
 

Código # 2: 
 

# importing pandas package
import pandas as pd
  
# making data frame from csv file
data = pd.read_csv("nba1.1.csv")
 
# giving a index to a dataframe
df = pd.DataFrame(data, index = [0, 1, 2, 3, 4, 5, 6,
                                 7, 8, 9, 10, 11, 12])
 
# filtering data on index value
mask = df.index > 7
 
df[mask]

Saída: