0
0
Pandasdata~20 mins

to_datetime() for parsing dates in Pandas - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Date Parsing Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Parsing mixed date formats with to_datetime()
What is the output of this code snippet when parsing mixed date formats using pandas to_datetime()?
Pandas
import pandas as pd

dates = ['2023-01-01', '01/02/2023', 'March 3, 2023', '2023.04.04']
df = pd.DataFrame({'date_str': dates})
df['parsed'] = pd.to_datetime(df['date_str'])
print(df['parsed'].dt.month.tolist())
A[1, 2, 3, 3]
B[1, 1, 3, 4]
C[1, 2, 3, 4]
D[1, 1, 2, 4]
Attempts:
2 left
💡 Hint
Remember that to_datetime() can parse many common date formats automatically.
data_output
intermediate
2:00remaining
Handling errors with to_datetime()
Given this code, what will be the content of the 'parsed' column after running to_datetime() with errors='coerce'?
Pandas
import pandas as pd

dates = ['2023-01-01', 'not a date', '2023-03-15']
df = pd.DataFrame({'date_str': dates})
df['parsed'] = pd.to_datetime(df['date_str'], errors='coerce')
print(df['parsed'].tolist())
A[Timestamp('2023-01-01 00:00:00'), NaT, Timestamp('2023-03-15 00:00:00')]
B[Timestamp('2023-01-01 00:00:00'), 'not a date', Timestamp('2023-03-15 00:00:00')]
C[Timestamp('2023-01-01 00:00:00'), Timestamp('not a date'), Timestamp('2023-03-15 00:00:00')]
D[Timestamp('2023-01-01 00:00:00'), None, Timestamp('2023-03-15 00:00:00')]
Attempts:
2 left
💡 Hint
errors='coerce' replaces invalid parsing with NaT (Not a Time).
visualization
advanced
3:00remaining
Visualizing parsed dates by year
After parsing these date strings with to_datetime(), which bar chart correctly shows the count of dates per year?
Pandas
import pandas as pd
import matplotlib.pyplot as plt

dates = ['2022-12-31', '2023-01-01', '2023-06-15', '2024-01-01']
df = pd.DataFrame({'date_str': dates})
df['parsed'] = pd.to_datetime(df['date_str'])
year_counts = df['parsed'].dt.year.value_counts().sort_index()
year_counts.plot(kind='bar')
plt.show()
ABar chart with bars: 2022=1, 2023=2, 2024=1
BBar chart with bars: 2022=2, 2023=1, 2024=1
CBar chart with bars: 2022=1, 2023=1, 2024=2
DBar chart with bars: 2022=0, 2023=3, 2024=1
Attempts:
2 left
💡 Hint
Count how many dates fall in each year after parsing.
🧠 Conceptual
advanced
2:00remaining
Understanding dayfirst parameter in to_datetime()
What is the output of this code when parsing '01/02/2023' with dayfirst=True?
Pandas
import pandas as pd

date_str = '01/02/2023'
parsed_date = pd.to_datetime(date_str, dayfirst=True)
print(parsed_date.strftime('%Y-%m-%d'))
A"2023-02-12"
B"2023-01-02"
C"2023-12-02"
D"2023-02-01"
Attempts:
2 left
💡 Hint
dayfirst=True means the first number is the day, not the month.
🔧 Debug
expert
3:00remaining
Why does this to_datetime() call raise an error?
Consider this code snippet. Why does it raise a ValueError?
Pandas
import pandas as pd

dates = ['2023-01-01', '2023-02-30']
df = pd.DataFrame({'date_str': dates})
df['parsed'] = pd.to_datetime(df['date_str'], format='%Y-%m-%d')
ABecause to_datetime() cannot parse strings inside a DataFrame column.
BBecause '2023-02-30' is an invalid date and format='%Y-%m-%d' enforces strict parsing.
CBecause the format string is incorrect for the given dates.
DBecause the dates list contains strings instead of datetime objects.
Attempts:
2 left
💡 Hint
Check if all dates are valid calendar dates.