Quick Start

Profile, scan, compare, clean, and ask questions about your data in under a minute.

This page gets you from pip install to a clean dataset in under a minute. Every snippet here works against the Titanic CSV — feel free to substitute your own file.

1. Install

pip install zedda

For Parquet support or pandas DataFrame input, install with the [parquet] extra:

pip install "zedda[parquet]"

2. Profile a file

python -c "import zedda as zd; zd.profile('https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv')"

Or, in a script:

import zedda as zd

zd.profile("data.csv")

Zedda prints a Rich-formatted EDA report to the terminal: dataset overview panel, data quality score, per-column table (type, nulls, unique, mean, stddev, min, max, skewness, kurtosis), smart warnings, and Pearson correlation alerts above |r| ≥ 0.7.

3. Use a DataFrame instead of a path

Every function accepts a pandas or polars DataFrame directly. A file path is never required.

import pandas as pd
import zedda as zd

df = pd.read_csv("data.csv")
zd.profile(df)

For polars:

import polars as pl
import zedda as zd

df = pl.read_csv("data.csv")
zd.profile(df)
Note

Passing a DataFrame writes a temporary Parquet file under the hood, so the [parquet] extra is required for pandas. Polars DataFrames work without the extra because polars ships its own Arrow writer.

4. Get a silent profile for CI/CD

import zedda as zd

result = zd.scan("data.csv")
print(result.num_rows, result.num_cols)
print(result.overall_null_pct)

scan() returns a DatasetProfile without printing anything — ideal for asserting data quality in a pipeline.

5. List every warning

import zedda as zd

zd.warnings("data.csv")

This prints every issue ranked by severity (critical → warning → info), each with inline fix code, plus a copy-paste block at the end and the overall quality score.

For programmatic access in CI, use collect_warnings():

import zedda as zd

issues = zd.collect_warnings("data.csv")
critical = [i for i in issues if i["severity"] == "critical"]
assert not critical, f"{len(critical)} critical data quality issues"

6. Compare two snapshots

import zedda as zd

zd.compare("train.csv", "test.csv")

Zedda prints a schema diff (added, removed, type-mismatched columns), null-rate changes, distribution shifts on numeric columns, new categories in categorical columns, and a final verdict: PASS, REVIEW, or FAIL.

7. Auto-clean with a backup

import zedda as zd

zd.clean("data.csv", output="clean.csv")
# To restore the original:
zd.clean.undo("data.csv")

clean() writes a .zedda-backup of the original file (idempotent — never overwrites an existing backup), applies every auto-fixable warning, writes the cleaned file, and writes a JSON audit trail at clean_cleaning_audit.json in the output directory.

8. Ask a plain-English question

import zedda as zd

zd.ask("data.csv", "any nulls here?")

By default ask() tries four offline pattern matchers first (row count, column count, null summary, single-column stat, correlation summary). If none match and the ZEDDA_AI_KEY environment variable is set, it falls back to an LLM call. See AI Q&A and Configuration.

9. Export an HTML report

import zedda as zd

zd.report("data.csv", output="rep.html")

The report is a single self-contained HTML file: inline CSS, inline SVG sparklines, zero external network requests. Safe to email or host statically.

What you have now

You have used every top-level Zedda function. From here:

  • Guides — deeper walkthroughs of each function with sample output.
  • Python API — every argument, return type, and exception.
  • CLI — the same functions exposed as zedda subcommands.
  • Architecture — how the C++17 engine streams terabyte-scale files in 2 MB of memory.