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
Supported formats
Privacy
Runs entirely in your browser. Your input is never uploaded, stored, or sent to a third party.
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
- Parse the CSV with RFC 4180 quoting rules.
- Use the first row as the header and the widest row as the column count.
- Infer each column type, then count nulls, uniques and the numeric or length range.
- Report the row/column totals and the ragged-row count.
Usage
- Paste CSV content with a header row.
- Read each column's inferred type, nulls, uniques and range.
- 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
{
"csv": "name,age,city\nAda,36,London\nGrace,45,New York\nAlan,41,"
}Quoted field with a comma
{
"csv": "id,note\n1,\"hello, world\"\n2,\"multi\nline\""
}Ragged rows
{
"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
Send feedback
Tell us if this tool helped, report a problem, or suggest a tool. Only the message you type is sent — never the input you used in the tool.
Was this tool useful?
Prefer to write to us directly? See the contact page.