Filtrer les Pandas DataFrame avec des conditions multiples

Suraj Joshi 30 janvier 2023
  1. Filtrer les entrées d’un DataFrame basé sur des conditions multiples en utilisant l’indexation
  2. Filtrer les entrées d’une DataFrame basée sur des conditions multiples en utilisant la méthode query()
Filtrer les Pandas DataFrame avec des conditions multiples

Ce tutoriel explique comment nous pouvons filtrer les entrées d’un DataFrame en fonction de plusieurs conditions.

Nous utiliserons le DataFrame ci-dessous dans cet article.

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)

Production :

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

Filtrer les entrées d’un DataFrame basé sur des conditions multiples en utilisant l’indexation

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)

Production :

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

Il filtre toutes les entrées dans le stocks_df, dont la valeur de la colonne Sector est Technology et la valeur de la colonne Price est inférieure à 500.

Nous spécifions les conditions à l’intérieur de [] reliant les conditions en utilisant l’opérateur & ou | pour indexer les valeurs basées sur des conditions multiples. L’opérateur & représente la logique et, ce qui signifie que les deux conditions doivent être vraies pour sélectionner une entrée. L’opérateur | représente l’opérateur logique ou signifiant qu’une condition quelconque est satisfaite pour sélectionner l’entrée.

Filtrer les entrées d’une DataFrame basée sur des conditions multiples en utilisant la méthode query()

Nous passons les multiples conditions connectées par l’opérateur & ou | comme argument à la méthode 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)

Production :

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
Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Article connexe - Pandas Filter