Profile a CSV file and generate a simple summary report per column.
- Column name
- Inferred type
- Missing values + non-empty counts
- Top (most frequent) value
- Numeric stats (when applicable): min, max, mean, median
- Unique count
- A CLI built with Typer
- A Gradio web UI
If you have Astral's uv installed, you can run the tool without installing it into your environment.
CLI:
uvx git+https://github.com/afaskar/CSVProfiler.git cli data/data.csvWeb UI:
uvx git+https://github.com/afaskar/CSVProfiler.git csv-profiler webpip install git+https://github.com/afaskar/CSVProfiler.gitFor local development:
pip install -e .csv-profiler cli data/data.csvThis generates the reports in outputs/ by default:
outputs/report.mdoutputs/report.json
csv-profiler cli data/data.csv --out-dir outputSupported values for --format are: md, json, both.
csv-profiler cli data/data.csv --format mdcsv-profiler cli data/data.csv --format jsoncsv-profiler cli data/data.csv --format bothpython -m csv_profiler cli data/data.csvYou can also call the CLI app module directly:
python -m csv_profiler.cli cli data/data.csvcsv-profiler webOr via module:
python -m csv_profiler webOr run the web module directly:
python -m csv_profiler.webgui- CLI output files are written as
report.mdand/orreport.jsoninside the output directory. - Web UI prints the generated report content directly (Markdown or JSON).
MIT. See LICENSE.
