CSV Profiler and Analyzer
Open a CSV or TSV file and get exact row and column counts, per-column data types, null and unique counts, numeric and string statistics, and duplicate-row detection. The file is read by your browser; it is not uploaded.
What data profiling means
Profiling means computing objective facts about a dataset before you work with it: how many rows and columns it has, what type each column actually is, how much of it is missing, how many values are duplicated, and what range each column covers. Nothing here is guessed — every number is calculated from your file. This is usually the first step before cleaning, querying or building anything on top of a CSV.
What is calculated
For every column:
- Null count and null percentage, non-null count
- Unique count and what percentage of non-null values are unique
- Numeric columns: minimum, maximum, mean, median and standard deviation
- Text columns: shortest, longest and average length, plus empty and whitespace-only counts
- Date, time and timestamp columns: earliest and latest value
At the dataset level: exact row and column counts, and an exact duplicate-row count (rows that are identical across every column), unless the file is large enough that this check is skipped — see “Large files” below.
Null, empty and whitespace-only are different things
A null value is genuinely missing. An empty string is a value that is present but has no characters. A whitespace-only value is present, not empty, but contains only spaces or similar characters (like a single space that looks blank but is not). This tool reports these separately rather than treating them as the same thing, because they usually mean different things when you are cleaning data. One CSV-specific detail worth knowing: DuckDB's CSV reader reads a blank field, quoted or not, as a null value, not an empty string, so this tool's empty-string count is typically 0 for CSV files; whitespace-only values are not affected by this and are detected normally.
What counts as a duplicate row
Two rows are duplicates if every column matches, including two rows that both have a missing value in the same column. The duplicate-row count is how many rows would be removed if you kept only one copy of each distinct row.
Browser-local processing
Every statistic is computed by DuckDB running as WebAssembly in your browser, the same engine used by the CSV Viewer. Your file is not uploaded, and the page does not load your dataset into memory to compute these numbers — each statistic comes from a SQL query against the file. See the privacy page for what is and is not verified about that.
Types this tool understands
Numbers, text, true/false values, and dates, times and timestamps all get full statistics. A column type this tool does not yet have statistics for is still shown, with its detected type and null/uniqueness counts, rather than being hidden or causing an error.
Large files
Profiling scans your file, so it takes longer and uses more memory on larger files. This tool warns you above roughly 100 MB, warns more strongly above roughly 500 MB, and declines to open a file above roughly 2 GB. Duplicate-row detection compares every column of every row, so it is the most expensive check here: it is skipped, and clearly marked “Not calculated”, above roughly 500 MB, rather than making the whole tool slow or attempting a guess.
Related tools
- CSV ViewerOpen large CSV files in a fast, searchable, sortable table.
- CSV Data Quality AnalyzerDetect potential data problems in a CSV, each with severity, count, explanation and a suggested action.
- CSV CleanerTrim, deduplicate, rename and filter, then export a cleaned CSV.
- SQL on CSVLoad a CSV and query it with SQL powered by DuckDB.