HOWTO · Pandas

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.

Nesta página

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