← All Tools

CSV Column Profiler

Paste any CSV or TSV and get a per-column data profile — inferred type, null and unique counts, min/max/mean, top sample values, and a starter SQL CREATE TABLE. Nothing leaves the browser, so profiling a suspicious dataset before importing it into your database is safe.

Input

How types are inferred

Each non-null cell in a column is matched against a chain of pattern tests, from most-specific to least. A column takes the most-specific type all its values agree on. If a single cell fails the check, the column falls back to the next candidate; if no candidate wins, it's string.

  • boolean — every value is one of true / false / yes / no / t / f / y / n / 0 / 1 (case-insensitive).
  • integer — optional sign, digits, no decimal point or exponent, fits in 64-bit range.
  • float — integer, or has a decimal point / exponent, and parses as a finite number.
  • datetime — RFC 3339 / ISO 8601 with a time component, e.g. 2026-07-20T13:45:00Z.
  • dateYYYY-MM-DD, YYYY/MM/DD, MM/DD/YYYY, or DD/MM/YYYY.
  • timeHH:MM or HH:MM:SS.
  • emaillocal@domain.tld style, single @, tld ≥ 2.
  • url — starts with http://, https://, or ftp://.
  • uuid — 8-4-4-4-12 hex (with or without hyphens).
  • ip — IPv4 dotted quad or a plausible IPv6.
  • json — parses as an object or array with JSON.parse.
  • string — the fallback.

Numeric stats (min / max / mean / std) are only computed for integer and float; length stats for everything else. Uniqueness is exact up to the sample cap you set — beyond that, treat it as an approximation.