utkukosman1/explain-my-data-CLI

A lightweight CLI for exploratory data analysis, dataset diagnostics, and reporting.

1

stars

17

commits

Python

primary language

Jul 28, 2026

updated

data-analysis
data-analytics
eda
python
tui

README

emd

Explain My Data — instant EDA reports from any CSV or Excel file.

emd analyze demo

Why

Every new dataset starts with the same half-hour of boilerplate: check distributions, scan for missing values, eyeball correlations, hunt for outliers. emd runs that entire first pass in one command and turns it into a single Markdown report with charts, so you can skip straight to the interesting questions. It's built for data scientists and analysts who want a fast, repeatable first look at a file before opening a notebook. It also detects statistical drift between two datasets, which makes it useful for monitoring train/test splits or production data in an MLOps pipeline. No config, no setup beyond installing it — point it at a file and read the report.

Install

git clone https://github.com/utkukosman1/explain-my-data-CLI.git
cd explain-my-data-CLI
pip install -e .

For Isolation Forest outlier detection (optional):

pip install -e ".[ml]"

Quickstart

emd analyze data.csv

Produces reports/<filename>/report.md with embedded charts — distributions, correlations, missing values, outliers, and more, all in one file.

What you get

SectionWhat you get
Data Quality SummaryFATAL/WARNING/INFO checks — empty data, high missing columns, duplicate rows, mixed types
Dataset OverviewShape, dtypes, null counts, memory usage
Distribution AnalysisMean, median, std, CV, skewness, kurtosis, normality test, percentiles, histogram + KDE, box plot
Correlation AnalysisPearson & Spearman heatmaps, Cramér's V (categorical), point-biserial, VIF, strongest pairs table
Missing Value AnalysisPer-column missing %, missingness patterns, correlated missingness pairs
Outlier DetectionIQR, Z-score, Modified Z-score, optional Isolation Forest
Key Insights (Target)Top correlated features + hue charts — only when --target is provided

More commands

emd summary data.csv                         # fast terminal recap — no files written
emd doctor data.csv                          # health score + pre-modeling risk audit
emd analyze titanic.csv --target Survived    # feature importance vs. a target column
emd compare train.csv test.csv               # drift detection between two datasets
emd check data.csv                           # quality check only, no report
emd batch ./data/                            # analyze every CSV/XLSX in a directory
emd schema init data.csv                     # generate a YAML schema contract

See docs/cli-reference.md for the full flag reference, and docs/statistical-methods.md for how each statistic and test is computed.

Optional: web UI

A small companion UI (FastAPI + Next.js) exists for browser use — see web/. It's not required to use emd.

Development

pip install -e ".[dev]"
pytest tests/
ruff check src/ tests/
mypy src/emd

License

MIT — see LICENSE.

Contributors

utkukosman1

17 commits

utkukosman1/explain-my-data-CLI

A lightweight CLI for exploratory data analysis, dataset diagnostics, and reporting.

1

stars

17

commits

Python

primary language

Jul 28, 2026

updated

data-analysis
data-analytics
eda
python
tui

README

emd

Explain My Data — instant EDA reports from any CSV or Excel file.

emd analyze demo

Why

Every new dataset starts with the same half-hour of boilerplate: check distributions, scan for missing values, eyeball correlations, hunt for outliers. emd runs that entire first pass in one command and turns it into a single Markdown report with charts, so you can skip straight to the interesting questions. It's built for data scientists and analysts who want a fast, repeatable first look at a file before opening a notebook. It also detects statistical drift between two datasets, which makes it useful for monitoring train/test splits or production data in an MLOps pipeline. No config, no setup beyond installing it — point it at a file and read the report.

Install

git clone https://github.com/utkukosman1/explain-my-data-CLI.git
cd explain-my-data-CLI
pip install -e .

For Isolation Forest outlier detection (optional):

pip install -e ".[ml]"

Quickstart

emd analyze data.csv

Produces reports/<filename>/report.md with embedded charts — distributions, correlations, missing values, outliers, and more, all in one file.

What you get

SectionWhat you get
Data Quality SummaryFATAL/WARNING/INFO checks — empty data, high missing columns, duplicate rows, mixed types
Dataset OverviewShape, dtypes, null counts, memory usage
Distribution AnalysisMean, median, std, CV, skewness, kurtosis, normality test, percentiles, histogram + KDE, box plot
Correlation AnalysisPearson & Spearman heatmaps, Cramér's V (categorical), point-biserial, VIF, strongest pairs table
Missing Value AnalysisPer-column missing %, missingness patterns, correlated missingness pairs
Outlier DetectionIQR, Z-score, Modified Z-score, optional Isolation Forest
Key Insights (Target)Top correlated features + hue charts — only when --target is provided

More commands

emd summary data.csv                         # fast terminal recap — no files written
emd doctor data.csv                          # health score + pre-modeling risk audit
emd analyze titanic.csv --target Survived    # feature importance vs. a target column
emd compare train.csv test.csv               # drift detection between two datasets
emd check data.csv                           # quality check only, no report
emd batch ./data/                            # analyze every CSV/XLSX in a directory
emd schema init data.csv                     # generate a YAML schema contract

See docs/cli-reference.md for the full flag reference, and docs/statistical-methods.md for how each statistic and test is computed.

Optional: web UI

A small companion UI (FastAPI + Next.js) exists for browser use — see web/. It's not required to use emd.

Development

pip install -e ".[dev]"
pytest tests/
ruff check src/ tests/
mypy src/emd

License

MIT — see LICENSE.

Contributors

utkukosman1

17 commits

Languages

Python

62.1%

TypeScript

36.3%

CSS

1.3%