📖 Scenario: You work as a data analyst for a website. You have daily visitor counts for a week. You want to find which days had visitor counts above a certain threshold to understand busy days.
🎯 Goal: Build a small program that stores daily visitor counts, sets a threshold, finds days with visitors above that threshold, and prints those days with their counts.
📋 What You'll Learn
Create a dictionary with exact day names as keys and visitor counts as values
Create a variable for the visitor threshold
Use a dictionary comprehension to find days with visitors above the threshold
Print the resulting dictionary of busy days
💡 Why This Matters
🌍 Real World
Web analysts often need to find patterns in visitor data to understand peak usage days and plan resources accordingly.
💼 Career
This skill helps data analysts and marketers identify important trends and make data-driven decisions for website improvements.
Progress0 / 4 steps
1
Create the daily visitors dictionary
Create a dictionary called daily_visitors with these exact entries: 'Monday': 120, 'Tuesday': 85, 'Wednesday': 150, 'Thursday': 90, 'Friday': 200, 'Saturday': 75, 'Sunday': 110.
Data Analysis Python
Hint
Use curly braces {} to create a dictionary. Put day names as keys and visitor counts as values.
2
Set the visitor threshold
Create a variable called visitor_threshold and set it to 100.
Data Analysis Python
Hint
Just assign the number 100 to the variable visitor_threshold.
3
Find busy days using dictionary comprehension
Use a dictionary comprehension to create a new dictionary called busy_days that contains only the days from daily_visitors where the visitor count is greater than visitor_threshold. Use day and count as the loop variables.
Data Analysis Python
Hint
Use {day: count for day, count in daily_visitors.items() if count > visitor_threshold} to filter days.
4
Print the busy days dictionary
Write a print statement to display the busy_days dictionary.
Data Analysis Python
Hint
Use print(busy_days) to show the filtered dictionary.
Practice
(1/5)
1. What does a web analytics data pattern typically help you understand about website visitors?
easy
A. The website's server hardware specifications
B. The programming language used to build the website
C. How visitors interact with the website
D. The color scheme of the website
Solution
Step 1: Understand the purpose of web analytics data
Web analytics data tracks visitor actions like page views and clicks.
Step 2: Identify what patterns reveal
Patterns show how visitors interact, such as popular pages and visit duration.
Final Answer:
How visitors interact with the website -> Option C
Quick Check:
Visitor interaction = Understanding web analytics data [OK]
Hint: Web analytics = visitor behavior on site [OK]
Common Mistakes:
Confusing analytics with technical website details
Thinking analytics shows website design choices
Assuming analytics reveals server specs
2. Which Python code snippet correctly counts page visits from a list of page names called pages?
easy
A. from collections import Counter
visit_counts = Counter(pages)
B. visit_counts = pages.count()
C. visit_counts = sum(pages)
D. visit_counts = pages.length()
Solution
Step 1: Identify correct method to count items in a list
Python's collections.Counter counts occurrences of each item in a list.
Step 2: Check each option's validity
from collections import Counter
visit_counts = Counter(pages) uses Counter(pages) correctly. Others use invalid methods or wrong functions.
Final Answer:
from collections import Counter\nvisit_counts = Counter(pages) -> Option A
Quick Check:
Use Counter to count list items [OK]
Hint: Use Counter to count list items quickly [OK]
Common Mistakes:
Using .count() without argument
Trying to sum strings
Using .length() which is not a Python method
3. Given this code, what is the output?
import pandas as pd
# Sample data
web_data = pd.DataFrame({
'page': ['home', 'about', 'home', 'contact', 'home', 'about'],
'duration': [30, 45, 25, 10, 35, 50]
})
# Calculate average duration per page
avg_duration = web_data.groupby('page')['duration'].mean().round(1)
print(avg_duration)
medium
A. page
about 47.5
contact 10.0
home 30.0
Name: duration, dtype: int64
B. page
about 45.0
contact 10.0
home 30.0
Name: duration, dtype: float64
C. page
about 47.5
contact 10.0
home 30.5
Name: duration, dtype: float64
D. page
about 47.5
contact 10.0
home 30.0
Name: duration, dtype: float64
Solution
Step 1: Group data by 'page' and calculate mean duration
B. Using max() returns the lexicographically largest page, not the most visited
C. max() function is not defined for pandas Series
D. The code has a syntax error in DataFrame creation
Solution
Step 1: Understand what max() does on a string column
max() returns the largest value alphabetically, not the count of visits.
Step 2: Identify correct method to find most visited page
Use value_counts().idxmax() to find the page with highest visits.
Final Answer:
Using max() returns the lexicographically largest page, not the most visited -> Option B
Quick Check:
max() on strings = lex order, not frequency [OK]
Hint: Use value_counts() to find most visited page [OK]
Common Mistakes:
Assuming max() finds most frequent item
Expecting max() to count occurrences
Confusing max() with mode()
5. You have a DataFrame visits with columns user_id, page, and duration (seconds spent). How would you find the average duration per user for only pages visited more than twice by that user?
hard
A. Group by user and page, filter groups with count > 2, then average durations per user
B. Filter rows where duration > 2, then group by user and average duration
C. Group by user, count pages, then average duration ignoring counts
D. Sum durations per user and divide by total pages visited
Solution
Step 1: Group data by user and page to count visits
Use groupby(['user_id', 'page']) and filter groups with count > 2.
Step 2: Calculate average duration per user from filtered data
After filtering, group by user_id and compute mean duration.
Final Answer:
Group by user and page, filter groups with count > 2, then average durations per user -> Option A
Quick Check:
Filter by visit count, then average durations per user [OK]
Hint: Filter groups by count > 2 before averaging durations [OK]
Common Mistakes:
Filtering by duration instead of visit count
Ignoring grouping by page before filtering
Averaging durations without filtering visits
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.