Filtrar Pandas DataFrame con múltiples condiciones

Suraj Joshi 30 enero 2023
  1. Filtrar entradas de un DataFrame basado en múltiples condiciones utilizando la indexación
  2. Filtrar entradas de un DataFrame basado en múltiples condiciones usando el método query()
Filtrar Pandas DataFrame con múltiples condiciones

Este tutorial explica cómo podemos filtrar las entradas de un DataFrame basándonos en múltiples condiciones.

Utilizaremos el siguiente DataFrame en este artículo.

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)

Producción :

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

Filtrar entradas de un DataFrame basado en múltiples condiciones utilizando la indexación

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)

Producción :

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 las entradas en el stocks_df, cuyo valor de la columna Sector es Technology y el valor de la columna Price es inferior a 500.

Especificamos las condiciones dentro de [] conectando las condiciones mediante el operador & o el operador | para indexar los valores basándose en múltiples condiciones. El operador & representa la lógica y, lo que significa que ambas condiciones deben ser verdaderas para seleccionar una entrada. El operador | representa la lógica o, es decir, si se cumple alguna de las condiciones para seleccionar la entrada.

Filtrar entradas de un DataFrame basado en múltiples condiciones usando el método query()

Pasamos las condiciones múltiples conectadas por el operador & o el operador | como un argumento al 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)

Producción :

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

Artículo relacionado - Pandas Filter