Dataset Profiler
Profile a local dataset without changing it or exposing example values.
python scripts/profile_dataset.py path/to/data.csv
python scripts/profile_dataset.py data.jsonl --limit 50000 --output profile.json
The script supports CSV, TSV, top-level JSON objects or arrays of objects, JSONL, and NDJSON. It reports a SHA-256 fingerprint, row count, observed columns, nulls, type distribution, bounded distinct count, numeric range/mean, and string-length range.
Safety and interpretation
- Keep raw values out of the report; cardinality and ranges can still be sensitive, so store profiles according to the source dataset's classification.
- Use
--limitfor very large inputs and record that the result is sampled. - Treat inferred types as observations, not a business schema.
- Stop on malformed records rather than silently dropping them.
- Use
data-quality-auditorwhen explicit rules determine pass or fail.