Pandas DataFrame mit mehreren Bedingungen filtern
- Einträge eines DataFrame auf Basis mehrerer Bedingungen mit Hilfe der Indizierung filtern
-
Filterung von Einträgen eines DataFrame basierend auf mehreren Bedingungen mit der Methode
query()

In diesem Tutorial wird erklärt, wie wir Einträge aus einem DataFrame basierend auf mehreren Bedingungen filtern können.
Wir werden in diesem Artikel den folgenden DataFrame verwenden.
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)
Ausgabe:
Stock Price Sector
0 Tesla 835 Technology
1 Moderna Inc 112 Health Technology
2 Facebook 267 Technology
3 Boeing 209 Aircraft
Einträge eines DataFrame auf Basis mehrerer Bedingungen mit Hilfe der Indizierung filtern
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)
Ausgabe:
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
Es werden alle Einträge in stocks_df
gefiltert, deren Wert der Spalte Sector
Technology
ist und der Wert der Spalte Price
kleiner als 500 ist.
Wir geben die Bedingungen innerhalb von []
an und verbinden die Bedingungen mit dem &
- oder dem |
-Operator, um die Werte basierend auf mehreren Bedingungen zu indizieren. Der Operator &
repräsentiert die Logik und
, was bedeutet, dass beide Bedingungen wahr sein müssen, um einen Eintrag auszuwählen. Der Operator |
steht für die Logik oder
, d. h. wenn eine der Bedingungen erfüllt ist, wird der Eintrag ausgewählt.
Filterung von Einträgen eines DataFrame basierend auf mehreren Bedingungen mit der Methode query()
Wir übergeben die durch den &
- oder den |
-Operator verbundenen mehreren Bedingungen als Argument an die Methode 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)
Ausgabe:
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 is a backend software engineer at Matrice.ai.
LinkedIn