0
0
Data Analysis Pythondata~20 mins

Date feature extraction in Data Analysis Python - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Date Feature Extraction Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Extracting Month and Day from Dates
What is the output of the following code that extracts the month and day from a pandas datetime column?
Data Analysis Python
import pandas as pd

df = pd.DataFrame({'date': pd.to_datetime(['2023-01-15', '2023-07-04', '2023-12-31'])})
df['month'] = df['date'].dt.month
df['day'] = df['date'].dt.day
print(df[['month', 'day']].to_dict(orient='list'))
A{"month": [1, 7, 12], "day": [15, 4, 31]}
B{"month": [15, 4, 31], "day": [1, 7, 12]}
C{"month": [2023, 2023, 2023], "day": [15, 4, 31]}
D{"month": [1, 7, 12], "day": [2023, 2023, 2023]}
Attempts:
2 left
💡 Hint
Look at how pandas datetime properties .dt.month and .dt.day extract parts of the date.
data_output
intermediate
2:00remaining
Counting Weekdays in a Date Range
Given a date range, how many Mondays are there in the DataFrame after extracting the weekday?
Data Analysis Python
import pandas as pd

dates = pd.date_range(start='2023-01-01', end='2023-01-31')
df = pd.DataFrame({'date': dates})
df['weekday'] = df['date'].dt.day_name()
monday_count = df[df['weekday'] == 'Monday'].shape[0]
print(monday_count)
A3
B4
C6
D5
Attempts:
2 left
💡 Hint
Count how many Mondays fall between Jan 1 and Jan 31, 2023.
visualization
advanced
3:00remaining
Plotting Hourly Distribution of Events
Which option produces the correct bar plot showing counts of events per hour from a datetime column?
Data Analysis Python
import pandas as pd
import matplotlib.pyplot as plt

# Sample data
timestamps = pd.to_datetime([
    '2023-06-01 08:15', '2023-06-01 08:45', '2023-06-01 09:00',
    '2023-06-01 10:30', '2023-06-01 10:45', '2023-06-01 10:50'
])
df = pd.DataFrame({'timestamp': timestamps})
df['hour'] = df['timestamp'].dt.hour
counts = df['hour'].value_counts().sort_index()

plt.bar(counts.index, counts.values)
plt.xlabel('Hour of Day')
plt.ylabel('Event Count')
plt.title('Events per Hour')
plt.show()
AA line chart showing event counts over hours 8 to 10.
BA bar chart with bars at hours 8, 9, and 10 with heights 2, 1, and 3 respectively.
CA pie chart showing percentage of events per hour.
DA scatter plot with hours on x-axis and event counts on y-axis.
Attempts:
2 left
💡 Hint
Look for a bar chart with counts grouped by hour.
🔧 Debug
advanced
2:00remaining
Identifying Error in Date Extraction Code
What error does the following code raise when trying to extract the week number from a datetime column?
Data Analysis Python
import pandas as pd

df = pd.DataFrame({'date': pd.to_datetime(['2023-01-01', '2023-06-15'])})
df['week_num'] = df['date'].dt.week
print(df)
AKeyError: 'week_num'
BTypeError: dt.week is not callable
CAttributeError: 'DatetimeProperties' object has no attribute 'week'
DNo error, prints week numbers correctly
Attempts:
2 left
💡 Hint
Check if .dt.week is a valid attribute in pandas datetime accessor.
🚀 Application
expert
3:00remaining
Calculating Age from Birthdate Column
Given a DataFrame with a 'birthdate' column, which option correctly calculates the age in years as of today?
Data Analysis Python
import pandas as pd
from datetime import datetime

df = pd.DataFrame({'birthdate': pd.to_datetime(['1990-05-15', '2000-12-01', '1985-07-30'])})

# Calculate age here

print(df['age'].tolist())
Adf['age'] = (pd.to_datetime('today') - df['birthdate']).dt.days // 365
Bdf['age'] = datetime.now().year - df['birthdate'].dt.year
Cdf['age'] = (datetime.now() - df['birthdate']).days // 365
Ddf['age'] = (pd.Timestamp(datetime.now()) - df['birthdate']).dt.days // 365
Attempts:
2 left
💡 Hint
Use pandas datetime subtraction and .dt.days to get days difference.