To profile a CSV in 30 seconds, open Zro7 CSV Analytics and drop the file in. DuckDB-WASM samples the file, infers types, and returns a per-column report: row count, null ratio, distinct count, min / max / mean for numerics, and a top-N histogram for categoricals. Everything is computed in your browser tab — the CSV never leaves the machine.
What you get, per column
- Inferred type — INTEGER, DOUBLE, DATE, TIMESTAMP, VARCHAR, BOOLEAN.
- Null ratio — % of rows where the field is missing.
- Distinct count —
approx_count_distinct()so it scales to millions of rows. - Numeric summary — min, max, mean, median, p95.
- Top-N values — the 10 most frequent values plus their share.
- Sample rows — the first 20 raw rows for context.
Why 30 seconds beats Pandas
Loading a fresh CSV into a Jupyter notebook takes minutes: open the notebook, pd.read_csv(), run .info(), run .describe(), poke at .value_counts() per column. DuckDB-WASM does all of that in one query against the raw file, and the browser renders it as a table. It's the fastest "what's in this file?" tool that doesn't upload.
Zro7 vs cloud profilers
SaaS profilers (Datawrapper, Observable, Google Sheets import) send the CSV up and profile it server-side. That's fine for public data — a bad idea for a customer export or an HR headcount file. Zro7 keeps the file local, so you can profile any dataset without a governance review.
Steps
- Open CSV Analytics.
- Drop the CSV. The profile renders in seconds.
- Click any column for its histogram, or open SQL Playground to query further.
Zro7