Filtro Pandas DataFrame Com Múltiplas Condições

Suraj Joshi 30 janeiro 2023
  1. Filtrar entradas de um DataFrame com base em múltiplas condições utilizando a Indexação
  2. Filtrar entradas de um Quadro de Dados com base em múltiplas condições utilizando o método query()
Filtro Pandas DataFrame Com Múltiplas Condições

Este tutorial explica como podemos filtrar entradas de um DataFrame com base em múltiplas condições.

Utilizaremos a DataFrame abaixo neste artigo.

import pandas as pd

stocks_df = pd.DataFrame(
    {
        "Stock": ["Tesla", "Moderna Inc", "Facebook", "Boeing"],
        "Price": [835, 112, 267, 209],
        "Sector": ["Technology", "Health Technology", "Technology", "Aircraft"],
    }
)

print(stocks_df)

Resultado:

         Stock  Price             Sector
0        Tesla    835         Technology
1  Moderna Inc    112  Health Technology
2     Facebook    267         Technology
3       Boeing    209           Aircraft

Filtrar entradas de um DataFrame com base em múltiplas condições utilizando a Indexação

import pandas as pd

stocks_df = pd.DataFrame(
    {
        "Stock": ["Tesla", "Moderna Inc", "Facebook", "Boeing"],
        "Price": [835, 112, 267, 209],
        "Sector": ["Technology", "Health Technology", "Technology", "Aircraft"],
    }
)

print("Stocks DataFrame:")
print(stocks_df, "\n")

reqd_stocks = stocks_df[(stocks_df.Sector == "Technology") & (stocks_df.Price < 500)]

print("The stocks of technology sector with price less than 500 are:")
print(reqd_stocks)

Resultado:

Stocks DataFrame:
         Stock  Price             Sector
0        Tesla    835         Technology
1  Moderna Inc    112  Health Technology
2     Facebook    267         Technology
3       Boeing    209           Aircraft

The stocks of technology sector with price less than 500 are:
      Stock  Price      Sector
2  Facebook    267  Technology

Filtra todas as entradas no stocks_df, cujo valor da coluna Sector é Technology e o valor da coluna Price é inferior a 500.

Especificamos as condições dentro de [] ligando as condições utilizando o & ou o operador | para indexar os valores com base em múltiplas condições. O operador & representa a lógica e, o que significa que ambas as condições devem ser verdadeiras para seleccionar uma entrada. O operador | representa a lógica and que significa se alguma condição é satisfeita para seleccionar a entrada.

Filtrar entradas de um Quadro de Dados com base em múltiplas condições utilizando o método query()

Passamos as múltiplas condições ligadas pelo operador & ou pelo operador | como argumento para o método query().

import pandas as pd

stocks_df = pd.DataFrame(
    {
        "Stock": ["Tesla", "Moderna Inc", "Facebook", "Boeing"],
        "Price": [835, 112, 267, 209],
        "Sector": ["Technology", "Health Technology", "Technology", "Aircraft"],
    }
)
print("Stocks DataFrame:")
print(stocks_df, "\n")

reqd_stocks = stocks_df.query("Sector == 'Technology' & Price <500")

print("The stocks of technology sector with price less than 500 are:")
print(reqd_stocks)

Resultado:

Stocks DataFrame:
         Stock Price             Sector
0        Tesla    835         Technology
1 Moderna Inc    112 Health Technology
2     Facebook    267         Technology
3       Boeing    209           Aircraft

The stocks of technology sector with price less than 500 are:
      Stock Price      Sector
2 Facebook    267 Technology
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artigo relacionado - Pandas Filter