CSV Profiler

Profile a CSV: per-column type, null count, unique count and min/max or length range.

  • Runs locally in your browser
  • No upload required

Try it

Read locally in your browser; never uploaded.

Paste delimited text or choose a file, then run the tool. Everything happens in your browser.

Supported formats

Input
text
Output
number, text

Privacy

Runs entirely in your browser. Your input is never uploaded, stored, or sent to a third party.

Processing
In your browser
Privacy level
Browser only

3 data row(s), 3 column(s), 0 ragged row(s).

How it works

  • Parsed the CSV with RFC 4180 quoting (quoted commas and newlines are handled).
  • Treating the first row as the header, inferred each column type from its values (all numeric, all text, or mixed).
  • Counted nulls and unique values and computed the numeric min/max or the text length range.
  • Type inference is per column: a column is numeric only when every non-empty value parses as a number.
  • Ragged rows (a row whose field count differs from the header) are counted, not discarded, so the profile still totals your data.

Methodology

  1. Parse the CSV with RFC 4180 quoting rules.
  2. Use the first row as the header and the widest row as the column count.
  3. Infer each column type, then count nulls, uniques and the numeric or length range.
  4. Report the row/column totals and the ragged-row count.

Usage

  1. Paste CSV content with a header row.
  2. Read each column's inferred type, nulls, uniques and range.
  3. Check the ragged-row count for data-quality issues.

Examples

These are examples, not current values: they use fixed inputs, while the interactive tool computes live results in your browser.

Mixed column types

jsonSelect to copy
{
  "csv": "name,age,city\nAda,36,London\nGrace,45,New York\nAlan,41,"
}

Quoted field with a comma

jsonSelect to copy
{
  "csv": "id,note\n1,\"hello, world\"\n2,\"multi\nline\""
}

Ragged rows

jsonSelect to copy
{
  "csv": "a,b,c\n1,2\n3,4,5\n6,7,8"
}

Limitations

What the profile tells you

A column profile is a quick data-quality read: a numeric column with nulls, a text column with a narrow or wide length range, or a mixed column all point to problems upstream. Ragged rows are the most common CSV defect and are surfaced separately.

The parser follows RFC 4180, so quoted fields may contain commas and newlines. The first row is always treated as the header.

Frequently asked questions

How is a column type decided?
A column is numeric when every non-empty value parses as a finite number, text when none do, empty when all are blank, and mixed otherwise.
What is a ragged row?
A row whose number of fields differs from the header; it usually signals an unescaped comma or a broken export.

Sources

  1. RFC 4180: Common Format and MIME Type for CSV Files — IETF
  2. MDN Web Docs: comma-separated values — MDN