Filtra Pandas DataFrame con più condizioni

Suraj Joshi 30 gennaio 2023
  1. Filtrare le voci di un DataFrame in base a più condizioni utilizzando l’indicizzazione
  2. Filtrare le voci di un DataFrame in base a più condizioni utilizzando il metodo query()
Filtra Pandas DataFrame con più condizioni

Questo tutorial spiega come filtrare le voci da un DataFrame in base a più condizioni.

Useremo il DataFrame di seguito in questo articolo.

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)

Produzione:

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

Filtrare le voci di un DataFrame in base a più condizioni utilizzando l’indicizzazione

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)

Produzione:

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 tutte le voci della colonna stock_df, il cui valore della colonna Sector è Technology e il valore della colonna Price è inferiore a 500.

Specifichiamo le condizioni all’interno di [] collegando le condizioni utilizzando il & o il | operatore per indicizzare i valori in base a più condizioni. L’operatore & rappresenta la logica e, il che significa che entrambe le condizioni devono essere vere per selezionare una voce. Il | L’operatore rappresenta la logica o che significa se una qualsiasi delle condizioni è soddisfatta per selezionare la voce.

Filtrare le voci di un DataFrame in base a più condizioni utilizzando il metodo query()

Superiamo le molteplici condizioni collegate dal & o dal | operatore come argomento del metodo 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)

Produzione:

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

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

LinkedIn

Articolo correlato - Pandas Filter