Challenge - 5 Problems
Datetime Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate2:00remaining
Output of extracting month using dt accessor
What is the output of this code snippet?
Pandas
import pandas as pd s = pd.Series(pd.to_datetime(['2023-01-15', '2023-06-20', '2023-12-31'])) result = s.dt.month print(result.tolist())
Attempts:
2 left
💡 Hint
The dt accessor extracts datetime components like year, month, day.
✗ Incorrect
The dt.month extracts the month number from each datetime in the Series. The months are January (1), June (6), and December (12).
❓ data_output
intermediate2:00remaining
Number of weekend days in a datetime Series
Given a pandas Series of dates, which option correctly counts how many dates fall on a weekend (Saturday or Sunday)?
Pandas
import pandas as pd s = pd.Series(pd.to_datetime(['2023-04-01', '2023-04-02', '2023-04-03', '2023-04-04'])) weekends = s.dt.dayofweek >= 5 count = weekends.sum() print(count)
Attempts:
2 left
💡 Hint
Dayofweek returns 0 for Monday and 6 for Sunday.
✗ Incorrect
Saturday is dayofweek 5 and Sunday is 6, so dates with dayofweek >= 5 are weekends. Here, 2023-04-01 is Saturday and 2023-04-02 is Sunday, so count is 2.
🔧 Debug
advanced2:00remaining
Identify the error in using dt accessor
What error does this code raise?
Pandas
import pandas as pd s = pd.Series(['2023-01-01', '2023-02-01', '2023-03-01']) result = s.dt.day print(result)
Attempts:
2 left
💡 Hint
The dt accessor requires datetime type, not strings.
✗ Incorrect
The Series contains strings, not datetime objects. The dt accessor only works on datetime-like data, so it raises AttributeError.
🚀 Application
advanced2:00remaining
Filter rows by hour using dt accessor
You have a DataFrame with a datetime column 'timestamp'. Which code filters rows where the hour is between 9 AM and 5 PM (inclusive)?
Pandas
import pandas as pd df = pd.DataFrame({'timestamp': pd.to_datetime(['2023-01-01 08:00', '2023-01-01 09:00', '2023-01-01 17:00', '2023-01-01 18:00'])})
Attempts:
2 left
💡 Hint
Use inclusive comparison operators to include 9 AM and 5 PM.
✗ Incorrect
Option A correctly filters rows where hour is between 9 and 17 inclusive, matching 9 AM to 5 PM.
🧠 Conceptual
expert2:00remaining
Understanding dt accessor behavior with missing values
Given a Series with some missing datetime values, what is the output of accessing dt.day on it?
Pandas
import pandas as pd s = pd.Series([pd.Timestamp('2023-01-01'), pd.NaT, pd.Timestamp('2023-01-03')]) result = s.dt.day print(result.tolist())
Attempts:
2 left
💡 Hint
Missing datetime values become pandas NA in dt accessor outputs.
✗ Incorrect
When dt accessor is used on a Series with pd.NaT, the missing values appear as in the output Series, but .tolist() converts it to nan, so print(result.tolist()) shows [1, nan, 3].