Skip to main content

One-line automated EDA with interactive visual reports

Project description

⚡ swift-eda

One line. Full picture.

swift is a zero-config Python EDA library that turns any pandas DataFrame into a beautiful, interactive HTML report — complete with smart profiling, auto-selected charts, correlation analysis, and data quality alerts.

import swift
swift.analyse(df)

That's it.


Install

pip install swift-eda

Python 3.8+ License: CC BY-NC 4.0


Usage

import swift

# Minimal — opens report in browser automatically
swift.analyse(df)

# Custom title
swift.analyse(df, title="Q3 Sales Data")

# Dark theme
swift.analyse(df, theme="dark")

# Save to a file path instead of a temp file
swift.analyse(df, export="reports/my_report.html")

# Don't auto-open browser
swift.analyse(df, open_browser=False)

# Skip columns (IDs, UUIDs, irrelevant fields)
swift.analyse(df, exclude=["id", "uuid", "row_number"])

# Tune categorical detection threshold
swift.analyse(df, max_cat_unique=30)

# Combine options
swift.analyse(
    df,
    title="Customer Churn Analysis",
    theme="dark",
    exclude=["customer_id"],
    export="churn_report.html",
)

What you get

Every swift report contains four sections:

Overview

  • Summary stat cards: rows, columns, missing values, duplicate rows
  • Null heatmap — visualize where data is missing across rows and columns
  • Null % bar chart — ranked by missingness

Columns

  • Grouped by type: Numeric, Categorical, Datetime, Boolean, Text, Constant
  • Per-column: dtype badge, key stat chips, and an auto-selected interactive chart
  • Data quality alerts shown inline (high nulls, skew, outliers, imbalance, etc.)

Correlations

  • Pearson correlation heatmap with annotation
  • Spearman correlation matrix
  • Top correlated pairs ranked by |r|
  • Cramér's V for categorical associations
  • Point-biserial for numeric × categorical pairs

Alerts

  • Color-coded, icon-tagged, filterable by severity (critical / warning / info)
  • Covers: high nulls, constant columns, skewed distributions, outliers, imbalanced classes, mixed types, possible ID columns, and more

How it works

swift runs a 5-step pipeline under the hood:

  1. Ingest — smart dtype inference beyond raw pandas dtypes (detects constants, high-cardinality text, low-cardinality integer categoricals, parseable datetimes)
  2. Profile — computes full stats per column: mean/median/IQR/skewness for numerics, top values/entropy for categoricals, date range for datetimes
  3. Correlate — Pearson & Spearman matrices, Cramér's V for cat pairs, point-biserial for mixed pairs
  4. Visualize — auto-selects the right Plotly chart per dtype (histogram+box, horizontal bar, donut, time series, length distribution)
  5. Report — assembles everything into a self-contained HTML file with a fixed sidebar, smooth scroll-spy, and full responsive layout — no external dependencies except Plotly CDN

Comparison

Feature df.describe() ydata-profiling sweetviz swift
One-line API
Interactive charts partial
Auto chart selection partial
Correlation types Pearson only Pearson + Spearman Pearson Pearson + Spearman + Cramér's V + point-biserial
Alert system
Dark theme
Self-contained HTML
Report size Large (often 5–50 MB) Medium Small
Speed (1k rows) Instant Slow Medium Fast

Contributing

Contributions are welcome! Please open an issue first to discuss what you'd like to change.

# Clone and install in dev mode
git clone https://github.com/yourusername/swift-eda
cd swift-eda
pip install -e ".[dev]"

# Run tests
pytest

License

See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uziswiftedax-0.1.0.tar.gz (31.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uziswiftedax-0.1.0-py3-none-any.whl (27.0 kB view details)

Uploaded Python 3

File details

Details for the file uziswiftedax-0.1.0.tar.gz.

File metadata

  • Download URL: uziswiftedax-0.1.0.tar.gz
  • Upload date:
  • Size: 31.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for uziswiftedax-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8f6a412bde90e5b906487d1c3b763260075f0a7a25b40635d0a4475b4864c8f3
MD5 bc588517f2c8b075a4f1fafa9c369eac
BLAKE2b-256 16a0c0c408187b5c35a0bed893c361c8915756a0d8dacc25412fb4b2ea7986b3

See more details on using hashes here.

File details

Details for the file uziswiftedax-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: uziswiftedax-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 27.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for uziswiftedax-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c8e304e16027dc007e376f84fee6d6d102eb7de445f846ffaa32889c8f049e17
MD5 92a243338ed77a6d23d4b66f5d747f16
BLAKE2b-256 e04b0fdfdd235f02fd6eabbdb4a8c648bd132b602cd2de1d74b86c87955298a5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page