Overview
Introduction
Before cleaning up or importing a CSV file, it helps to know what's actually in it: how many rows and columns, what type of data each column holds, and how much variety there is per column. This tool produces that summary in one pass.
It's read-only: a diagnostic and profiling tool, not a data transformer.
What Is CSV Analyzer?
A CSV profiling tool that reports overall row and column counts, plus a per-column inferred type and unique-value count.
Type inference recognizes four categories: numeric, text, boolean, and empty, based on scanning every value in a column.
How CSV Analyzer Works
The input is parsed into a grid and padded to a consistent rectangular shape, so ragged rows don't cause a column's value count to be miscounted.
For each column, every data-row value is collected; the type is inferred by checking whether all non-empty values are boolean-like, then whether they're all numeric, falling back to text if neither holds (or empty if there are no non-empty values at all). A Set of the column's values gives its unique-value count.
When To Use CSV Analyzer
Use it right after receiving an unfamiliar CSV file, to quickly understand its shape and content before deciding how to process it.
It's also useful for spotting columns that are unexpectedly low-variety (e.g. a column you expected to be unique IDs but has far fewer unique values than rows) or entirely empty.
Often used alongside CSV Validator, CSV Incomplete Record Finder and Empty CSV Column Deleter.
Features
Advantages
- Gives an at-a-glance profile of an unfamiliar CSV file without opening it in a spreadsheet program.
- Correctly handles ragged input by padding rows before analysis.
- Runs entirely client-side, so the data never leaves your browser.
Limitations
- Type inference is heuristic and based purely on string content; a column of numeric-looking strings that's meant to be treated as text (like zip codes with leading zeros) will still be reported as numeric.
- It reports column-level statistics only; it doesn't compute cross-column relationships or detect a specific column as a likely primary key.
Examples
Best Practices & Notes
Best Practices
- Run this before deciding which cleanup tools to apply, so you know, for example, whether a column is truly empty (a candidate for the empty column deleter) or just sparse.
- Treat the inferred type as a starting hint, not a guarantee: always double check columns where the type matters for downstream processing, like IDs that should stay text.
- Use the unique-value count to sanity-check whether a column you expect to be a unique key actually is one.
Developer Notes
Type inference order matters: boolean is checked before numeric, since a boolean-only column ('true'/'false') would otherwise fail the numeric check and be classified as text; numeric is checked with `!Number.isNaN(Number(value.trim()))`, and a column with zero non-empty values across all rows short-circuits to 'empty' before either check runs.
CSV Analyzer Use Cases
- Quickly profiling an unfamiliar CSV file before deciding on a processing pipeline
- Spotting unexpectedly empty or low-variety columns before import
- Sanity-checking that a column intended as a unique identifier actually has as many unique values as rows
Common Mistakes
- Trusting the inferred type as authoritative for values like zip codes or phone numbers, which look numeric but should be treated as text to preserve leading zeros or formatting.
- Assuming a low unique-value count means a data quality problem, when it might simply reflect a genuinely categorical column (like a status field with only a few valid values).
Tips
- If a column is reported as 'empty', the empty column deleter can remove it in one step.
- Follow up with the CSV validator if you also want to confirm the file has no ragged rows before trusting the row and column counts fully.