📖 Scenario: Imagine you run a small online store. You want to understand how your sales change over time to spot trends and make better decisions.
🎯 Goal: You will create a simple sales record, set a time threshold, filter sales after that time, and then display the filtered sales to see the trend.
📋 What You'll Learn
Create a dictionary with sales dates as keys and sales amounts as values
Create a variable to hold a date threshold
Use a dictionary comprehension to filter sales after the threshold date
Print the filtered sales dictionary
💡 Why This Matters
🌍 Real World
Businesses often analyze sales or user activity over time to spot trends and make decisions.
💼 Career
Data analysts and scientists use time-based filtering to prepare data for trend analysis and forecasting.
Progress0 / 4 steps
1
Create sales data dictionary
Create a dictionary called sales with these exact entries: '2024-01-01': 150, '2024-02-01': 200, '2024-03-01': 250, '2024-04-01': 300, '2024-05-01': 350
Data Analysis Python
Hint
Use curly braces to create a dictionary with date strings as keys and numbers as values.
2
Set the date threshold
Create a variable called threshold_date and set it to the string '2024-03-01'
Data Analysis Python
Hint
Assign the string '2024-03-01' to the variable threshold_date.
3
Filter sales after the threshold date
Create a new dictionary called filtered_sales using a dictionary comprehension that includes only the sales from sales where the date is greater than or equal to threshold_date
Data Analysis Python
Hint
Use a dictionary comprehension with for date, amount in sales.items() and an if condition to filter.
4
Display the filtered sales
Write a print statement to display the filtered_sales dictionary
Data Analysis Python
Hint
Use print(filtered_sales) to show the filtered dictionary.
Practice
(1/5)
1. Why is time-based analysis important in data science?
easy
A. It removes all missing data automatically.
B. It helps us see how data changes over time to find trends.
C. It ignores the order of data points.
D. It only works with numbers, not dates.
Solution
Step 1: Understand the role of time in data
Time-based analysis focuses on data points collected over time to observe changes.
Step 2: Identify the benefit of time-based analysis
By analyzing data over time, we can detect trends and patterns that are not visible in static data.
Final Answer:
It helps us see how data changes over time to find trends. -> Option B
Quick Check:
Time-based analysis reveals trends = D [OK]
Hint: Time shows how data evolves; trends need time order [OK]
Common Mistakes:
Thinking time-based analysis ignores data order
Believing it only works with numbers, not dates
Assuming it automatically cleans missing data
2. Which of the following is the correct way to convert a column named 'date' to datetime in pandas?
easy
A. df['date'] = convert_to_date(df['date'])
B. df['date'] = datetime(df['date'])
C. df['date'] = pd.datetime(df['date'])
D. df['date'] = pd.to_datetime(df['date'])
Solution
Step 1: Recall pandas datetime conversion function
pandas uses pd.to_datetime() to convert columns to datetime format.
Step 2: Check each option for correctness
df['date'] = pd.to_datetime(df['date']) uses the correct function and syntax. Options B, C, and D use invalid or non-existent functions.
Final Answer:
df['date'] = pd.to_datetime(df['date']) -> Option D
Quick Check:
Use pd.to_datetime() for date conversion = A [OK]
Hint: Use pd.to_datetime() to convert date columns [OK]
Common Mistakes:
Using datetime() instead of pd.to_datetime()
Trying pd.datetime() which does not exist
Assuming a function named convert_to_date exists
3. Given the following code, what will be the output?
A. A DataFrame with weekly sums: 2023-01-01 sum=10, 2023-01-02 to 2023-01-08 sum=50
B. A DataFrame with daily sums for each date
C. An error because resample needs a column, not index
D. Empty DataFrame because dates are not sorted
Solution
Step 1: Understand resample with weekly frequency
Resampling with 'W' groups data by week ending on Sunday. 2023-01-01 (Sunday) falls in week ending 2023-01-01, 2023-01-02 (Monday) to 2023-01-08 (Sunday) fall in week ending 2023-01-08.
Step 2: Calculate sums per week
First week sum: 10; second week sum: 20 + 30 = 50.
Final Answer:
A DataFrame with weekly sums: 2023-01-01 sum=10, 2023-01-02 to 2023-01-08 sum=50 -> Option A
Quick Check:
Weekly resample sums values correctly = C [OK]
Hint: Resample groups by time; sum adds values per period [OK]
Common Mistakes:
Thinking resample works on columns instead of index
C. The index is not set inplace, so resample fails on original index.
D. DataFrame is missing a 'value' column.
Solution
Step 1: Check index setting
df.set_index('date') returns a new DataFrame but does not change df unless inplace=True is used or reassigned.
Step 2: Understand resample requirement
Resample works on the datetime index. Since index was not set inplace, df still has default integer index, causing wrong grouping.
Final Answer:
The index is not set inplace, so resample fails on original index. -> Option C
Quick Check:
set_index needs inplace=True or reassignment = A [OK]
Hint: Use inplace=True or assign set_index result [OK]
Common Mistakes:
Forgetting inplace=True when setting index
Thinking resample works without datetime index
Assuming mean() is invalid with resample
5. You have daily sales data for a year. You want to find monthly sales trends but notice some days are missing. Which approach best reveals accurate monthly trends?
hard
A. Convert dates to datetime, set as index, then resample monthly with sum(), filling missing days with 0.
B. Ignore missing days and calculate monthly sum directly on raw data.
C. Convert dates to string and group by month substring, then sum values.
D. Use daily data without conversion and average all values.
Solution
Step 1: Prepare data with datetime index
Convert the date column to datetime and set it as the DataFrame index for time-based operations.
Step 2: Resample monthly and handle missing days
Use resample('M').sum() to aggregate monthly sales. Fill missing days with 0 to avoid undercounting.
Step 3: Avoid incorrect grouping methods
Grouping by string substrings or ignoring missing days can cause inaccurate trends.
Final Answer:
Convert dates to datetime, set as index, then resample monthly with sum(), filling missing days with 0. -> Option A
Quick Check:
Proper datetime index + resample + fill missing = B [OK]
Hint: Set datetime index, resample monthly, fill missing with zero [OK]
Common Mistakes:
Grouping by string instead of datetime index
Ignoring missing days causing wrong sums
Not converting dates to datetime before resampling
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.