Zero-Effort Data Discovery & Analysis
C++17-powered EDA and data cleaning engine for Python.
Guide · API reference · How it works · Contributing · Security
Zedda profiles, cleans, and validates datasets from a single Python call. Its core is written in C++17 and streams data in constant memory, so it scales from a 900-row CSV to a terabyte-scale Parquet file without changing how you use it.
pip install --upgrade pip # Ensure pip >= 22.3 for abi3 wheel recognition
pip install zedda # CSV only — zero native deps
pip install "zedda[parquet]" # adds Parquet/Arrow/Feather support
pip install "zedda[clean]" # adds fuzzy typo detection
pip install "zedda[ai]" # adds AI Q&A (zd.ask with Groq/OpenAI)
pip install "zedda[parquet,clean,ai]" # everything togetherPlatform support:
| Platform | Base install | [parquet] extra |
|---|---|---|
| Linux x86_64 (glibc >= 2.17 / musl) | ✅ prebuilt wheel | ✅ prebuilt pyarrow wheel |
| Linux ARM64 (aarch64) | ✅ prebuilt wheel | ✅ prebuilt pyarrow wheel |
| macOS Intel (x86_64) | ✅ prebuilt wheel | ✅ prebuilt pyarrow wheel |
| macOS Apple Silicon (ARM64) | ✅ prebuilt wheel | ✅ prebuilt pyarrow wheel |
| Windows x86_64 | ✅ prebuilt wheel | ✅ prebuilt pyarrow wheel |
| Windows ARM64 | ✅ prebuilt wheel | |
| Python 3.13 free-threaded (cp313t) |
conda users: Zedda is not yet on conda-forge. Install via pip inside your conda environment:
conda activate myenv pip install zedda
import zedda as zd
zd.profile("data.csv") # full EDA report in terminal
zd.scan("data.csv") # silent scan for CI/CD pipelines
zd.compare("train.csv", "test.csv") # train/test drift detection
zd.fix("data.csv", apply=True) # generate or apply pandas fix code
zd.ask("data.csv", "any nulls here?") # plain-English dataset Q&A
zd.ml_ready("data.csv") # readiness score for ML training
zd.warnings("data.csv") # list all issues ranked by severity
zd.clean("data.csv", output="clean.csv") # safe, backed-up auto-clean
zd.merge(["jan.csv", "feb.csv"], "out") # safely combine multiple files
zd.report("data.csv", output="rep.html") # export full report to offline HTMLEvery function also accepts a pandas DataFrame directly — a file path is
never required.
import pandas as pd
df = pd.read_csv("data.csv")
zd.profile(df)See the full list of available functions in the API reference, and how the underlying engine works in How it works.
git clone https://github.com/Zedda-Labs/Zedda.git --recursive
cd Zedda
# C++17 build tools (cmake, ninja) are required
pip install cmake ninja
pip install -e ".[dev]"
pytest tests/1. How does ZEDDA prevent false-positive cleaning recommendations?
ZEDDA evaluates statistical distributions across single-pass scans before flagging issues:
- ID Columns: Flagged only when cardinality is 100.0% unique across all rows.
- Zero-Variance Columns: Flagged only when a single distinct value spans 100.0% of non-null cells.
- Outliers: Identified using IQR bounds (
1.5 * IQR) combined with skewness thresholds. - Multicollinearity: Evaluated via single-pass Pearson correlation matrices (
|r| >= 0.95).
2. Is auto-cleaning (`zd.clean()`) safe for production data ingestion?
Yes. zd.clean() is fully deterministic, atomic, and safe:
- Automatic Backup: Creates
{filename}.zedda-backupprior to mutating any dataset. - Audit Trail: Outputs
{stem}.audit.jsoncontaining exact before/after row counts, quality scores, applied transformations, and timing logs. - Rollback Support: Run
zd.clean.undo("filename.csv")at any time to instantly restore the original dataset from backup.
3. How does ZEDDA integrate into CI/CD pipelines and orchestrators?
- Programmatic Python: Use
zd.scan("data.csv")inside Airflow / Prefect tasks to access.to_dict()and.to_json()metadata objects. - CLI Ingestion: Run
zedda scan data.csv --jsoninside GitHub Actions or GitLab CI to pipe structured JSON metadata directly into downstream data warehouse checks. - Air-Gapped Compliance:
zd.report()generates completely self-contained HTML files (zero CDN links, zero tracking, zero external network calls) suitable for banking and healthcare environments.
Issues and pull requests are welcome. See CONTRIBUTING.md.
MIT — see LICENSE.