Skip to learning content

DATA SCIENCE PYTHON PLAYGROUND

Data Foundations · A little practice goes a long way.

← Wrangle / Preprocess lessonsTINY TABLES · REAL PYTHON · YOUR PACE
Types, dates & missingness · W14 · 8 MIN

Parse dates

Convert date text and handle invalid dates visibly.

Exercises within this concept

  1. FollowFollow the techniqueCurrent exercise
  2. ChangeAdapt a requirement
  3. TransferChoose and combine

Understand the idea

Parse date strings before comparing calendar dates. An explicit format tells pandas which part is the year, month and day.

Concept sketch: text → datetime; invalid → NaTtext2026-06-01not a datedatetime2026-06-01NaTtext → datetime; invalid → NaT
Illustration · not the exercise output

A small example

"2026-08-04" with "%Y-%m-%d" means 4 August 2026. Invalid text becomes NaT with errors="coerce".

Follow the code

Apply the idea to the supplied table. Read from top to bottom; the final line displays the result.

df["date"] = pd.to_datetime(df["date"], format="%Y-%m-%d", errors="coerce")
df

What each part does

format="%Y-%m-%d"
four-digit year, month, day
errors="coerce"
invalid date becomes NaT

Your inputs

The editable setup on the right creates df. Run executes the setup and your work from top to bottom.

Messy café orders · 8 synthetic rows
orderdrinksizepricetipdate
101" latte "LARGE6.2012026-06-01
102TEAsmall3.100.52026-06-02
103" mocha "LARGEoopsNonenot a date
104LatteSmallNone0.82026-06-04
104LatteSmallNone0.82026-06-04
105"tea "SMALL4.200.62026-06-05
106ESPRESSOsmall2.500.22026-06-06
107" mocha"large6.801.52026-06-07

Your task · Follow

  1. Using df, parse date using year-month-day order.
  2. Keep invalid dates as NaT and retain all rows.
  3. Keep the changes in df and display it.
  4. Use: to_datetime().
Hint

Parse with the explicit year-month-day format; invalid dates should remain missing.

Reveal solution

One way to do it. Keep any supplied setup in the editor and use this in the Your work section.

df["date"] = pd.to_datetime(df["date"], format="%Y-%m-%d", errors="coerce")
df
Your task · Follow
  1. Using df, parse date using year-month-day order.
  2. Keep invalid dates as NaT and retain all rows.
  3. Keep the changes in df and display it.
  4. Use: to_datetime().

Tab: indent · Shift+Tab: outdent · Esc, then Tab: leave editor

Edit Python. Control or Command plus Enter runs it. Tab indents by four spaces. Shift plus Tab outdents. Press Escape, then Tab or Shift plus Tab to leave the editor.

Each run executes all editor code in a fresh Python session. Display a value by leaving it on the final line.

Python starts when you open a lesson.

Output

Run your code to see what Python returns.