📖 Scenario: You are a data analyst working with sales data from a small store. You want to understand the data better by exploring it step-by-step.
🎯 Goal: Build a simple exploratory data analysis workflow using pandas to load data, set a filter, analyze the filtered data, and print the results.
📋 What You'll Learn
Use pandas to create a DataFrame
Create a filter condition variable
Use the filter to select rows
Calculate the average sales from filtered data
Print the average sales
💡 Why This Matters
🌍 Real World
Exploratory data analysis helps businesses understand their sales data to make better decisions.
💼 Career
Data analysts and scientists use these skills daily to clean, filter, and summarize data before deeper analysis.
Progress0 / 4 steps
1
Create the sales data DataFrame
Import pandas as pd and create a DataFrame called sales_data with these exact columns and values: 'Product': ['Apples', 'Bananas', 'Cherries', 'Dates', 'Elderberries'], 'Sales': [100, 150, 80, 200, 50], 'Region': ['North', 'South', 'East', 'West', 'North'].
Pandas
Hint
Use pd.DataFrame with a dictionary of lists for columns.
2
Set a filter for the North region
Create a variable called north_filter that holds a filter condition selecting rows where the 'Region' column equals 'North'.
Pandas
Hint
Use sales_data['Region'] == 'North' to create the filter.
3
Calculate average sales for North region
Use the north_filter to select rows from sales_data and calculate the average of the 'Sales' column. Store this average in a variable called average_sales_north.
Pandas
Hint
Use sales_data.loc[north_filter, 'Sales'].mean() to get the average.
4
Print the average sales for North region
Write a print statement to display the text "Average sales in North region:" followed by the value of average_sales_north.
Pandas
Hint
Use print("Average sales in North region:", average_sales_north).
Practice
(1/5)
1. Which step is usually done first in an exploratory data analysis workflow?
easy
A. Viewing the first few rows of the dataset
B. Creating complex machine learning models
C. Removing all missing values immediately
D. Generating final reports without checking data
Solution
Step 1: Understand the initial data
Exploratory data analysis starts by looking at the first few rows to get a feel for the data structure and values.
Step 2: Avoid premature actions
Jumping to modeling or removing missing data without understanding can cause mistakes.
Final Answer:
Viewing the first few rows of the dataset -> Option A
Quick Check:
First step = View data sample [OK]
Hint: Always start by looking at data samples [OK]
Common Mistakes:
Starting with modeling before understanding data
Removing missing values without checking their impact
Ignoring data overview and jumping to conclusions
2. Which pandas command correctly shows summary statistics of numeric columns in a DataFrame df?
easy
A. df.head()
B. df.info()
C. df.describe()
D. df.sample()
Solution
Step 1: Identify summary statistics function
df.describe() returns count, mean, std, min, max, and quartiles for numeric columns.
Step 2: Differentiate other commands
df.head() shows first rows, df.info() shows data types, and df.sample() shows random rows.
Final Answer:
df.describe() -> Option C
Quick Check:
Summary stats = df.describe() [OK]
Hint: Use df.describe() for quick numeric summaries [OK]
Common Mistakes:
Using df.head() to get statistics
Confusing df.info() with statistical summary
Expecting df.sample() to summarize data
3. Given the DataFrame df below, what is the output of df.isnull().sum()?
Column 'A' has one None, 'B' has one None, 'C' has none.
Step 2: Use isnull().sum() to count missing
This method counts missing values per column, so output is {'A': 1, 'B': 1, 'C': 0}.
Final Answer:
{'A': 1, 'B': 1, 'C': 0} -> Option A
Quick Check:
Missing counts = {'A':1,'B':1,'C':0} [OK]
Hint: Count missing with df.isnull().sum() [OK]
Common Mistakes:
Counting total missing instead of per column
Confusing None with zero or empty string
Misreading which columns have missing values
4. You run df.info() but get an error: AttributeError: 'DataFrame' object has no attribute 'infoo'. What is the likely cause?
medium
A. The DataFrame is empty
B. You typed the method name incorrectly
C. The pandas library is not imported
D. The DataFrame has no columns
Solution
Step 1: Check the error message
The error says 'infoo' attribute not found, which suggests a typo in method name.
Step 2: Confirm correct method name
The correct method is df.info() with one 'o'.
Final Answer:
You typed the method name incorrectly -> Option B
Quick Check:
Typo in method name = error [OK]
Hint: Check spelling of method names carefully [OK]
Common Mistakes:
Assuming empty DataFrame causes this error
Forgetting to import pandas
Thinking DataFrame must have columns to use info()
5. You have a DataFrame df with columns ['Age', 'Salary', 'Department']. You want to find the average salary per department but only for employees older than 30. Which pandas workflow is correct?
hard
A. df.groupby('Department')['Salary'].mean()
B. df['Salary'].mean().groupby('Department')[df['Age'] > 30]
C. df.groupby('Department').mean()['Salary'][df['Age'] > 30]
D. df[df['Age'] > 30].groupby('Department')['Salary'].mean()
Solution
Step 1: Filter rows where Age > 30
Use df[df['Age'] > 30] to keep only employees older than 30.
Step 2: Group filtered data by Department and calculate mean Salary
Apply .groupby('Department')['Salary'].mean() on filtered data to get average salary per department.
Final Answer:
df[df['Age'] > 30].groupby('Department')['Salary'].mean() -> Option D
Quick Check:
Filter then group and mean = df[df['Age'] > 30].groupby('Department')['Salary'].mean() [OK]
Hint: Filter first, then group and aggregate [OK]
Common Mistakes:
Grouping before filtering data
Trying to filter after aggregation
Using mean() without grouping
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.