Logo

Sample Dirty CSV File — Messy Data for Cleaning Practice

A small CSV that packs in every common data-quality problem on purpose — inconsistent casing, stray whitespace, five different date formats, currency symbols, duplicates and blank fields. Made for teaching data cleaning.

Download the sample file

CSV · 15 rows · 973 B · synthetic data, free for any use

Download CSV sample

Preview

idFull Nameemailsignup dateamountcountryis_active
1 John Smith[email protected] 2026-01-05$1,200.00USAYes
2jane doe[email protected]05/01/2026900U.S.A.yes
3JOHN SMITH[email protected]Jan 5, 20261200United StatesTRUE
4María Garcíamaria@example2026-1-7€750.5Spain 1
5·[email protected]·N/A·0
6Liu Yang[email protected]2026/01/092000.00chinaNo

Showing the first 6 of 15 rows.

Columns

ColumnTypeDescription
idintegerRow id — one row has text where a number belongs
Full NamestringHeader has a space; values have inconsistent case and padding
emailstringMixed case, trailing spaces, one invalid address
signup datestringFive different formats: ISO, US, EU, "Jan 5, 2026", dotted
amountstring$, €, thousands separators, EU decimal comma, negatives, "N/A"
countrystring"USA", "U.S.A.", "United States", "DE", trailing spaces
is_activestringYes/yes/TRUE/1/Y/active/No/no/FALSE/0 — all mixed

What makes this file useful

  • Rows 6 and 7 are the same person ("Liu Yang") with different formatting — an exact-value dedupe misses them, a normalised dedupe catches them.
  • amount mixes US ($1,200.00) and EU (1.250,00) conventions in the same column — you must decide a canonical format.
  • Row 13 is intentionally broken (text in id, "not a date", "free" in amount) so you can test row-level validation and rejection.
  • is_active has eight different truthy/falsy spellings — a mapping table is the clean fix.

Use cases

  • Teach a full clean: trim, case-normalise, parse dates, strip currency, dedupe
  • Test that your pipeline flags the bad-type row instead of crashing
  • Practise standardising country names to ISO codes
  • Show before/after in a data-quality demo

Open it in a tool

Load this sample — or your own file — into a real tool. Everything runs client-side.

Related guides

More sample datasets

Browse all sample CSV files →

Frequently asked questions

Why would I want a broken file?

To practise fixing it. Real exports look like this. Learning on a clean file does not prepare you for the messy ones.

What is the "right" cleaned version?

There is no single answer, but a good result: trimmed strings, Title Case names, lowercase emails, ISO dates, numeric amount in one currency convention, ISO country codes, boolean is_active, and the broken row quarantined.

How many rows?

15 rows plus the header — small enough to inspect every one by hand.

Turn this into a saved workflow

Create a free account to save the steps from this guide as a reusable workflow and re-run it on any file, from any device.

Sign in for free

Follow HowToCSV on Google

Add us as a preferred source on Google Search so our latest CSV guides and tutorials surface more often in your Top stories.

Add HowToCSV as a preferred source