Skip to content

Filtering with Conditions (and, or, isin, query)

Setup

Setup DataFrame
import pandas as pd
 
df = pd.DataFrame({
    "name": ["Asha", "Ravi", "Meera", "Zoya", "Kabir"],
    "age": [23, 28, 26, 31, 22],
    "city": ["Pune", "Delhi", "Delhi", "Pune", "Mumbai"],
    "score": [88, 91, 77, 95, 60],
})
 
print(df)
Setup DataFrame
import pandas as pd
 
df = pd.DataFrame({
    "name": ["Asha", "Ravi", "Meera", "Zoya", "Kabir"],
    "age": [23, 28, 26, 31, 22],
    "city": ["Pune", "Delhi", "Delhi", "Pune", "Mumbai"],
    "score": [88, 91, 77, 95, 60],
})
 
print(df)

Basic boolean filtering

Single condition
print(df[df["age"] >= 25])
Single condition
print(df[df["age"] >= 25])

Multiple conditions: AND / OR

Pandas uses bitwise operators:

  • AND: &&
  • OR: ||

Always use parentheses:

AND filter
mask = (df["city"] == "Delhi") & (df["score"] >= 80)
print(df[mask])
AND filter
mask = (df["city"] == "Delhi") & (df["score"] >= 80)
print(df[mask])
OR filter
mask = (df["city"] == "Mumbai") | (df["score"] >= 90)
print(df[mask])
OR filter
mask = (df["city"] == "Mumbai") | (df["score"] >= 90)
print(df[mask])

isin()isin() for membership checks

isin
mask = df["city"].isin(["Pune", "Delhi"])
print(df[mask])
isin
mask = df["city"].isin(["Pune", "Delhi"])
print(df[mask])

between()between() for range filters

between
mask = df["age"].between(23, 30, inclusive="both")
print(df[mask])
between
mask = df["age"].between(23, 30, inclusive="both")
print(df[mask])

query()query() for readable filters

query()query() can be easier to read, especially in notebooks.

query
result = df.query('city == "Delhi" and score >= 80')
print(result)
query
result = df.query('city == "Delhi" and score >= 80')
print(result)

Variables inside query

query with variable
min_score = 85
result = df.query('score >= @min_score')
print(result)
query with variable
min_score = 85
result = df.query('score >= @min_score')
print(result)

Common mistakes

  • Using andand / oror instead of && / || (will error)
  • Forgetting parentheses around conditions
  • Comparing strings with extra spaces (clean using .str.strip().str.strip())

๐Ÿงช Try It Yourself

Exercise 1 โ€“ Create a DataFrame

Exercise 2 โ€“ Select a Column

Exercise 3 โ€“ Filter Rows

If this helped you, consider buying me a coffee โ˜•

Buy me a coffee

Was this page helpful?

Let us know how we did