DataPilot - A powerful, automated Exploratory Data Analysis (EDA) library in Python
Project description
๐ DataPilot โ Automated EDA Library
DataPilot is a Python library for automated Exploratory Data Analysis (EDA).
Give it a pandas DataFrame โ it gives you a beautiful, interactive HTML report with statistics, visualizations, outlier detection, data quality alerts, and ML insights.
โจ Features
- ๐ Dataset shape, memory usage, and data-type summaries
- โ Missing values analysis per column
- ๐ข Numerical & categorical statistics
- ๐ Pearson, Spearman, and Kendall correlations
- ๐จ IQR and Z-score outlier detection
- โ ๏ธ Data-quality alerts and preprocessing recommendations
- ๐ค ML task detection, feature importance, and PCA insights
- ๐ Standalone interactive HTML reports with Plotly + Seaborn charts
๐ฆ Installation
Install directly from PyPI:
pip install eda-datapilot
Upgrade to the latest version:
pip install --upgrade eda-datapilot
Requirements: Python 3.10 or newer
๐ฅ๏ธ Usage in Jupyter Notebook
Step 1 โ Install
!pip install --upgrade eda-datapilot
Step 2 โ Run EDA on your CSV
import pandas as pd
import datapilot
from IPython.display import IFrame
# Verify version
print("DataPilot version:", datapilot.__version__)
# Change to your CSV file path
df = pd.read_csv("your_file.csv")
print(f"Loaded: {df.shape[0]} rows ร {df.shape[1]} columns")
print(f"Columns: {list(df.columns)}")
# Set your target column or keep None
TARGET = None # e.g. TARGET = "Price" or TARGET = "diagnosis"
# Run full EDA
report = datapilot.analyze(df, target=TARGET)
# Save & display inline in Jupyter
report.to_html("My_EDA_Report.html")
IFrame("My_EDA_Report.html", width="100%", height=850)
Open report in browser tab instead
report.show("My_EDA_Report.html") # saves + auto-opens in browser
โ๏ธ Usage in Google Colab
Step 1 โ Install & Upload CSV
!pip install eda-datapilot
import pandas as pd
import datapilot
from google.colab import files
# Upload your CSV file
uploaded = files.upload()
filename = list(uploaded.keys())[0]
df = pd.read_csv(filename)
print(f"Loaded: {df.shape[0]} rows ร {df.shape[1]} columns")
Step 2 โ Run EDA & Download Report
TARGET = None # e.g. TARGET = "Price"
report = datapilot.analyze(df, target=TARGET)
report.to_html("My_EDA_Report.html")
files.download("My_EDA_Report.html")
print("Report downloaded!")
Step 3 โ View Inline in Colab
from IPython.display import IFrame
IFrame("My_EDA_Report.html", width="100%", height=850)
โก Quick Start (Python Script)
import pandas as pd
import datapilot
df = pd.read_csv("data/dataset.csv")
# Set target=None if no target column
report = datapilot.analyze(df, target="target_column")
report.to_html("DataPilot_Report.html")
print("Report saved!")
๐ฌ Step-by-Step Analysis
Use EDA when you need individual results as Python dictionaries:
import pandas as pd
from datapilot import EDA
df = pd.read_csv("data/dataset.csv")
eda = EDA(df, target="target_column")
summary = eda.summary() # Dataset overview
missing = eda.missing() # Missing values per column
numeric = eda.numeric() # Numeric statistics
categorical = eda.categorical() # Categorical statistics
duplicates = eda.duplicates() # Duplicate rows & columns
correlation = eda.correlation() # Pearson / Spearman / Kendall
outliers = eda.outliers() # IQR & Z-score outliers
problems = eda.problems() # Data quality alerts
recommendations = eda.recommendations() # Preprocessing suggestions
ml_insights = eda.ml_insights() # Feature importance & task type
print(summary)
print(problems)
print(recommendations)
# Generate full HTML report
report = eda.report()
report.to_html("detailed_report.html")
โ๏ธ Configuration
Customize thresholds, outlier detection, sampling, and report settings:
import pandas as pd
from datapilot import EDA, EDAConfig
df = pd.read_csv("data/dataset.csv")
config = EDAConfig(sample_size=10_000)
config.thresholds.high_correlation = 0.9
config.outliers.iqr_multiplier = 1.5
config.outliers.z_score_threshold = 3.0
config.report.title = "My EDA Report"
config.report.theme = "light"
eda = EDA(df, target="target_column", config=config)
eda.report().to_html("configured_report.html")
๐ Public API Reference
| Object / Method | Description |
|---|---|
datapilot.analyze(df, target=None) |
One-liner full EDA โ returns Report |
EDA(df, target=None, config=None) |
Step-by-step analysis class |
EDAConfig() |
Configuration for thresholds, outliers, reports |
eda.summary() |
Dataset overview (shape, dtypes, memory) |
eda.missing() |
Missing values per column |
eda.numeric() |
Numeric column statistics |
eda.categorical() |
Categorical column statistics |
eda.duplicates() |
Duplicate row & column detection |
eda.correlation() |
Correlation matrices |
eda.outliers() |
Outlier detection (IQR & Z-score) |
eda.problems() |
Data quality audit alerts |
eda.recommendations() |
Preprocessing recommendations |
eda.ml_insights() |
ML task type & feature importance |
report.to_html("file.html") |
Save report to HTML file |
report.show("file.html") |
Save + open in browser |
๐๏ธ Project Layout
datapilot/
โโโ datapilot/ # Library source code
โ โโโ analyzer.py # EDA and analyze() APIs
โ โโโ config.py # EDAConfig and report settings
โ โโโ report.py # HTML report generation
โ โโโ visualization.py # Plotly & Seaborn chart generators
โ โโโ templates/ # Jinja2 HTML report template
โโโ examples/demo.py # Runnable demo with synthetic data
โโโ tests/ # Automated tests
โโโ pyproject.toml # Package metadata and dependencies
โโโ requirements.txt # Runtime dependencies
๐งช Run the Demo
python examples/demo.py
This creates a synthetic dataset with missing values, outliers, and duplicates, then generates DataPilot_Demo_Report.html.
๐งช Run Tests
python -m pytest
๐ License
MIT License โ see LICENSE for details.
๐ฉโ๐ป Author
Sakshi Nagare โ sakshinagare2112@gmail.com
โญ If you find DataPilot useful, please star the repo and share it with others! eda.report().to_html("reports/configured_report.html")
## Run the Included Demo
The included demo creates a synthetic dataset with missing values, outliers,
duplicates, categorical columns, and a target column. It writes
`DataPilot_Demo_Report.html` to the project directory.
```powershell
python examples\demo.py
Run Tests
python -m pytest
Public API
The package exports the following public objects:
from datapilot import EDA, EDAConfig, analyze
analyze(df, target=None)runs a complete analysis.EDA(df, target=None, config=None)provides step-by-step analysis.EDAConfigconfigures thresholds, outliers, reports, and sampling.
Project Layout
datapilot/
โโโ datapilot/ # Library source code
โ โโโ analyzer.py # EDA and analyze APIs
โ โโโ config.py # EDAConfig and report settings
โ โโโ report.py # HTML report generation
โ โโโ templates/ # Report template
โโโ examples/demo.py # Runnable library example
โโโ tests/ # Automated tests and sample data
โโโ pyproject.toml # Package metadata and dependencies
โโโ requirements.txt # Runtime and test dependencies
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
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_datapilot-0.2.3.tar.gz.
File metadata
- Download URL: eda_datapilot-0.2.3.tar.gz
- Upload date:
- Size: 371.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2e6020c33620c745c7b954e40aff802fe94c0485d58b60e617b03334564fc63
|
|
| MD5 |
d17e166eb6dc49ee7af09faa979a5690
|
|
| BLAKE2b-256 |
8def3078948872e701834ea8a92668d2fc5ea243594379a6731d095645f50994
|
File details
Details for the file eda_datapilot-0.2.3-py2.py3-none-any.whl.
File metadata
- Download URL: eda_datapilot-0.2.3-py2.py3-none-any.whl
- Upload date:
- Size: 33.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
506c83338688abe7f6fbdd9ee950d3d45a93f1e7e53bb1eacd7d180392cdf95a
|
|
| MD5 |
740ab5e72db59e76cc54dfa1201d4d6d
|
|
| BLAKE2b-256 |
9fd87262a393c3ff670203644a01996f93b3e3c19f2a09bddec0c0619e19c5f2
|