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
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:
- Ingest — smart dtype inference beyond raw pandas dtypes (detects constants, high-cardinality text, low-cardinality integer categoricals, parseable datetimes)
- Profile — computes full stats per column: mean/median/IQR/skewness for numerics, top values/entropy for categoricals, date range for datetimes
- Correlate — Pearson & Spearman matrices, Cramér's V for cat pairs, point-biserial for mixed pairs
- Visualize — auto-selects the right Plotly chart per dtype (histogram+box, horizontal bar, donut, time series, length distribution)
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f6a412bde90e5b906487d1c3b763260075f0a7a25b40635d0a4475b4864c8f3
|
|
| MD5 |
bc588517f2c8b075a4f1fafa9c369eac
|
|
| BLAKE2b-256 |
16a0c0c408187b5c35a0bed893c361c8915756a0d8dacc25412fb4b2ea7986b3
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8e304e16027dc007e376f84fee6d6d102eb7de445f846ffaa32889c8f049e17
|
|
| MD5 |
92a243338ed77a6d23d4b66f5d747f16
|
|
| BLAKE2b-256 |
e04b0fdfdd235f02fd6eabbdb4a8c648bd132b602cd2de1d74b86c87955298a5
|