Skip to main content
DataToolsOnline

What Is Data Profiling?

Data profiling answers one question, precisely: what does this dataset actually contain? It doesn't judge whether that's good or bad — that's a different, related job.

A profile is a set of facts, not a verdict

Profiling a column produces facts computed directly from the data: how many values are null, how many distinct values exist, and — for a numeric column — the minimum, maximum, mean, median and standard deviation. For a text column: minimum, maximum and average string length, plus how many values are empty or whitespace-only. None of this requires knowing anything about what the column is supposed to represent.

Want to see this on your own data?

Open CSV Profiler

Profiling vs. data quality: different questions

Profiling and data quality checking are related but distinct. Profiling reports “this column is 12% null and has 40 distinct values” — a fact. A quality check takes facts like that and asks whether they look like a problem — an interpretation. A data quality analyzer is typically built directly on top of a profiler's output, reusing its statistics rather than recomputing them.

Why “duplicate row” needs a byte-size or row-count limit

One profiling step — exact duplicate-row detection — compares every column of every row against every other row, which is the one profiling operation whose cost scales with the whole dataset at once rather than one column at a time. On a very large file this can genuinely exhaust available memory, so a real profiler needs to know when to stop and say “not calculated” rather than hang or crash — see How to Find Duplicate Rows in a CSV File for exactly where that limit sits.

The same statistics, whatever the format

A CSV Profiler and a Parquet Profiler compute the same statistics, but Parquet's own file format adds facts CSV cannot offer: a real empty string counted separately from a real NULL (a CSV reader turns every blank field into NULL, so this distinction only exists once a file actually preserves it), plus row groups, compression and per-column encoding read straight from the file's footer.

A nested column is profiled honestly, not guessed at

A Parquet STRUCT or LIST column doesn't get invented numeric or string statistics that wouldn't make sense for it — only null and uniqueness counts, with an explicit note that detailed statistics aren't available for that shape, and the file-structure panel showing its real physical storage instead.

Try it: CSV Profiler

Column-by-column statistics computed from your actual data.

Related reading