Zero-config automated EDA: pass any folder, get charts, stats, and a full HTML report.
Project description
⬡ EDA Wizard — Zero-Config Automated EDA
Pass any folder. Get a full EDA report. No setup.
import edawizard
edawizard.eda("any/folder")
What it does
EDA Wizard recursively scans a folder, detects every supported file type, runs comprehensive exploratory data analysis on each one, and generates a self-contained report.html plus organized CSVs — all in one call.
Supported file types
| Category | Formats |
|---|---|
| Tabular | CSV, TSV, Excel (.xlsx/.xls), JSON, Parquet, Feather, Pickle |
| Video | MP4, AVI, MKV, MOV, WMV, FLV, WebM, MPEG, 3GP, TS … |
| Audio | MP3, WAV, FLAC, AAC, OGG, M4A, WMA, OPUS, AIFF … |
| Image | PNG, JPG, JPEG, WebP, TIFF, BMP, GIF |
Installation
Core (tabular data only — zero extra deps):
pip install eda-wizard
With full media support (video + audio + image):
pip install "eda-wizard[full]"
Pick what you need:
pip install "eda-wizard[video]" # adds opencv-python-headless
pip install "eda-wizard[audio]" # adds mutagen
pip install "eda-wizard[image]" # adds Pillow
Video fallback: If
opencv-python-headlessis not installed, EDA Wizard automatically triesffprobe(part of FFmpeg) if available on your PATH.
Usage
import edawizard
# Scan a folder — all supported files analysed automatically
edawizard.eda("path/to/any/folder")
# Custom output folder name
edawizard.eda("my_data", output_name="eda_results")
# Disable row sampling (analyse all rows, slower on huge files)
edawizard.eda("my_data", max_rows=0)
# Silent mode
edawizard.eda("my_data", verbose=False)
Output structure
EDA_Wizard_Output/
├── report.html ← self-contained interactive report (open in browser)
├── summary.csv ← overview of all files
│
├── sales/ ← one folder per tabular file
│ ├── summary_stats.csv
│ ├── missing_values.csv
│ ├── correlation_matrix.csv
│ └── value_counts/
│ ├── region.csv
│ └── category.csv
│
├── media_video/
│ └── metadata.csv ← FPS, resolution, duration, codec, bitrate per file
│
├── media_audio/
│ └── metadata.csv ← sample rate, channels, bitrate, duration per file
│
└── media_image/
└── metadata.csv ← width, height, megapixels, mode, DPI per file
What's in the report
Tabular datasets
- Shape, memory usage, dtype breakdown
- Missing value counts + heatmap (per column)
- Duplicate row detection
- Descriptive statistics (mean, std, percentiles, skew, kurtosis)
- Outlier detection (IQR method) with fences
- Correlation matrix heatmap + top correlated pairs
- Distribution histograms + KDE per numeric column
- Box plots per numeric column
- Top-value bar charts per categorical column
- Zero / negative counts per numeric column
Video datasets
- Duration distribution + total hours
- FPS distribution (discrete bar or continuous histogram)
- Resolution scatter plot (width × height bubble map)
- Aspect ratio breakdown
- Bitrate distribution
- Codec distribution
Audio datasets
- Duration distribution + total hours
- Sample rate (Hz) distribution — discrete bar chart
- Channel layout (Mono / Stereo / Surround) pie chart
- Bitrate distribution
- Codec distribution
Image datasets
- Resolution scatter map
- Megapixel distribution
- Color mode breakdown (RGB, RGBA, Grayscale …)
- Aspect ratio breakdown
- File size distribution
How media extraction works
Video → opencv-python-headless → ffprobe (subprocess) → file size only
Audio → mutagen → ffprobe (subprocess) → file size only
Image → Pillow → file size only
EDA Wizard degrades gracefully: if a library isn't installed it tries the next option and prints a tip at startup.
Requirements
| Package | Purpose | Optional? |
|---|---|---|
pandas |
Data loading & stats | No |
numpy |
Numerics | No |
matplotlib |
Chart rendering | No |
seaborn |
Chart styling | No |
openpyxl |
Excel .xlsx | No |
pyarrow |
Parquet / Feather | No |
opencv-python-headless |
Video metadata | Yes (pip install "eda-wizard[video]") |
mutagen |
Audio metadata | Yes (pip install "eda-wizard[audio]") |
Pillow |
Image metadata | Yes (pip install "eda-wizard[image]") |
Contributing
git clone https://github.com/SMFRafin/eda-wizard
cd eda-wizard
pip install -e ".[dev]"
pytest
PRs welcome! Especially for:
- Additional file type support
- LLM-generated insight summaries
- More chart types
- Performance improvements for very large datasets
License
MIT
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 eda_wizard-0.1.1.tar.gz.
File metadata
- Download URL: eda_wizard-0.1.1.tar.gz
- Upload date:
- Size: 36.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9919ab36fbee1bd1cf7ec5e24ffdabd888e5091cff8b1858e91e409233d6323
|
|
| MD5 |
8f571e77a5eb8ca1a1b38a337e0dd6a0
|
|
| BLAKE2b-256 |
4cfa2ba272ebcd7b631b64efb60f7040f367996b040e09cbb8260f1e3c0ca033
|
File details
Details for the file eda_wizard-0.1.1-py3-none-any.whl.
File metadata
- Download URL: eda_wizard-0.1.1-py3-none-any.whl
- Upload date:
- Size: 36.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4cc4508184cb775fe6a16e90406c5913c539275f880e53343402a1fa7308de93
|
|
| MD5 |
05d4992097fdff7fe6ce94bb5f59dbeb
|
|
| BLAKE2b-256 |
31ae541ede8928e9956f06d89110907804d3a2cd6444c75fd9a2d6ea7b471abc
|