📖 Scenario: You work in a store and have a table of sales data. You want to quickly find sales that meet certain conditions, like sales above a certain amount or sales from a specific product.
🎯 Goal: Build a small program that uses pandas query() to filter sales data based on a condition.
📋 What You'll Learn
Create a pandas DataFrame with sales data
Create a variable for the sales amount threshold
Use query() to filter rows where sales are above the threshold
Print the filtered DataFrame
💡 Why This Matters
🌍 Real World
Filtering data quickly helps businesses analyze sales trends and make decisions fast.
💼 Career
Data analysts and scientists often use pandas <code>query()</code> to filter large datasets efficiently.
Progress0 / 4 steps
1
Create the sales DataFrame
Import pandas as pd and create a DataFrame called sales with these exact columns and rows: Product: 'Apple', 'Banana', 'Carrot', 'Date', 'Eggplant' Amount: 50, 30, 20, 40, 10
Pandas
Hint
Use pd.DataFrame with a dictionary where keys are column names and values are lists of data.
2
Set the sales amount threshold
Create a variable called threshold and set it to 25 to filter sales above this amount.
Pandas
Hint
Just assign the number 25 to a variable named threshold.
3
Filter sales using query()
Use query() on the sales DataFrame to create a new DataFrame called filtered_sales that only has rows where Amount is greater than threshold.
Pandas
Hint
Use sales.query('Amount > @threshold') to filter rows where Amount is greater than threshold. The @ symbol lets you use the variable threshold inside the query string.
4
Print the filtered sales
Print the filtered_sales DataFrame to see the rows where sales amount is greater than 25.
Pandas
Hint
Use print(filtered_sales) to show the filtered rows.
Practice
(1/5)
1. What is the main purpose of the query() method in pandas?
easy
A. To filter rows of a DataFrame using a readable string expression
B. To sort the DataFrame by column values
C. To merge two DataFrames based on a key column
D. To create a new DataFrame from scratch
Solution
Step 1: Understand the purpose of query()
The query() method is designed to filter rows in a DataFrame by using a string expression that specifies conditions on columns.
Step 2: Compare with other DataFrame methods
Sorting is done by sort_values(), merging by merge(), and creating new DataFrames is done by constructors, not query().
Final Answer:
To filter rows of a DataFrame using a readable string expression -> Option A
Quick Check:
query() filters rows [OK]
Hint: Remember: query() filters rows with string conditions [OK]
Common Mistakes:
Confusing query() with sorting or merging methods
Thinking query() creates new DataFrames
Assuming query() modifies columns
2. Which of the following is the correct syntax to filter rows where column age is greater than 30 using query()?
easy
A. df.query('age > "30"')
B. df.query(age > 30)
C. df.query('age > 30')
D. df.query('age => 30')
Solution
Step 1: Check the correct string format for query()
The condition must be passed as a string, so it should be inside quotes: 'age > 30'.
Step 2: Validate the comparison operator and quotes
Operator must be >, not =>. Also, 30 should be a number, not a string with quotes.
Final Answer:
df.query('age > 30') -> Option C
Quick Check:
Use string with correct operator [OK]
Hint: Put condition inside quotes with correct operators [OK]
5. You have a DataFrame df with columns temperature and humidity. You want to filter rows where temperature is above 20 and humidity is below 50. Which query() call correctly does this?
hard
A. df.query('temperature > 20 or humidity < 50')
B. df.query('temperature > 20 and humidity < 50')
C. df.query('temperature > 20 & humidity < 50')
D. df.query('temperature > 20 && humidity < 50')
Solution
Step 1: Understand logical operators in query()
Within query strings, use and and or for combining conditions, not & or &&.
Step 2: Match the condition requirements
The problem wants temperature > 20 and humidity < 50, so the correct operator is and.
Final Answer:
df.query('temperature > 20 and humidity < 50') -> Option B
Quick Check:
Use 'and' for multiple conditions in query() [OK]
Hint: Use 'and' not '&' to combine conditions in query() [OK]
Common Mistakes:
Using bitwise operators (&, &&) instead of 'and'
Using 'or' instead of 'and' when both conditions needed
Mixing Python operators outside query() syntax
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.