Skip to content

Repository files navigation

Auto EDA

Small Python toolkit that runs exploratory analysis on a tabular dataset and writes a report you can actually share.

Point it at a CSV / TSV / Parquet file and you get:

  • column profiling and type inference
  • missing values, duplicates, and basic outlier flags
  • correlation highlights
  • short written insights
  • HTML, Markdown, and JSON exports (plus charts)

There is also a Streamlit UI if you prefer clicking around instead of using the CLI.

Quick start

python -m venv .venv

# Windows PowerShell
.\.venv\Scripts\Activate.ps1

# macOS / Linux
source .venv/bin/activate

pip install -r requirements-dev.txt
pip install -e .

auto-eda analyze data/samples/customer_churn_sample.csv -o reports/demo

Open reports/demo/report.html when it finishes.

Streamlit

streamlit run app/streamlit_app.py

Docker

docker compose up --build

CLI

auto-eda analyze path/to/data.csv -o reports/run1
auto-eda analyze path/to/data.csv --missing-threshold 0.2 --correlation-threshold 0.7
auto-eda analyze path/to/data.csv -o reports/run1 --open

Python API

from auto_eda import run_eda

output = run_eda("data/samples/customer_churn_sample.csv", output_dir="reports/api")
print(output.insights)
print(output.html_report)

What's included

Area Notes
Ingest CSV, TSV, Parquet
Typing numeric / categorical / datetime / text
Checks missingness, duplicates, z-score outliers
Relations correlation matrix + high-correlation pairs
Output HTML, Markdown, JSON, PNG figures
Interfaces Typer CLI + Streamlit app

Layout

app/streamlit_app.py
data/samples/
scripts/generate_sample_data.py
src/auto_eda/
  analyzer.py
  insights.py
  visualizations.py
  report.py
  pipeline.py
  cli.py
  templates/
tests/
Dockerfile
pyproject.toml

Sample dataset

data/samples/customer_churn_sample.csv is a synthetic churn-style table used for demos and tests. It includes a bit of missing data and a couple of duplicate rows so the quality checks have something to surface.

Regenerate it with:

python scripts/generate_sample_data.py

Tests

pytest -q

Stack

Python 3.10+, pandas, NumPy, Matplotlib, Seaborn, Typer, Rich, Jinja2, Streamlit, pytest, Docker.

Ideas / TODO

  • optional target column for bivariate plots
  • schema checks with Pandera
  • PDF export
  • faster path for very wide tables

License

MIT — see LICENSE.

About

Automated EDA toolkit: profile tabular data, flag quality issues, and export HTML/Markdown/JSON reports.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages