DataPilot - A powerful, automated Exploratory Data Analysis (EDA) library in Python
Project description
DataPilot
DataPilot is a Python library for automated exploratory data analysis (EDA). It analyzes a pandas DataFrame and provides dataset summaries, missing-value analysis, numerical and categorical statistics, duplicate detection, correlations, outlier detection, data-quality problems, recommendations, ML insights, visualizations, and an HTML report.
Features
- Dataset shape, memory usage, and data-type summaries
- Missing values and duplicate-row analysis
- Numerical and 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 HTML reports with interactive charts
Requirements
- Python 3.10 or newer
- A CSV file or another dataset that can be loaded into a pandas DataFrame
Installation
From the project directory:
python -m venv .venv
.venv\Scripts\activate
python -m pip install --upgrade pip
pip install -e .
To install the test and development dependencies as well:
pip install -e ".[dev]"
Quick Start
Create a Python file such as analyze_data.py:
from pathlib import Path
import pandas as pd
import datapilot
df = pd.read_csv("data/dataset.csv")
# Set target to None when the dataset has no target column.
report = datapilot.analyze(df, target="target_column")
output_path = Path("reports/datapilot_report.html")
output_path.parent.mkdir(parents=True, exist_ok=True)
report.to_html(str(output_path))
print(f"Report saved to: {output_path.resolve()}")
print(f"Quality score: {report.data.get('quality_score')}")
Run the script from the project directory:
python analyze_data.py
Open the generated reports/datapilot_report.html file in a browser.
To save the report and open it automatically:
report.show("reports/datapilot_report.html", open_browser=True)
Step-by-Step Analysis
Use EDA when you need individual analysis results in Python:
import pandas as pd
from datapilot import EDA
df = pd.read_csv("data/dataset.csv")
eda = EDA(df, target="target_column")
summary = eda.summary()
missing = eda.missing()
numeric = eda.numeric()
categorical = eda.categorical()
duplicates = eda.duplicates()
correlation = eda.correlation()
outliers = eda.outliers()
problems = eda.problems()
recommendations = eda.recommendations()
ml_insights = eda.ml_insights()
print(summary)
print(problems)
print(recommendations)
report = eda.report()
report.to_html("reports/detailed_report.html")
Each analysis method returns a Python dictionary, while report.data contains
all results from the complete analysis.
Configuration
Use EDAConfig to change sampling, thresholds, outlier detection, or 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 = "Dataset EDA Report"
config.report.theme = "light"
eda = EDA(df, target="target_column", config=config)
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.
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.2.tar.gz.
File metadata
- Download URL: eda_datapilot-0.2.2.tar.gz
- Upload date:
- Size: 370.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
812bfa712ffe212b41c0e1daa720ae5bf6e082558243f96661a69cf5df7ef471
|
|
| MD5 |
bfe60b0c6514b0df805729519f7f259d
|
|
| BLAKE2b-256 |
801cfd1432dd7bb7d4d06ea4a385db21e2e6dfb1ce8fab179237e98fbf6906fa
|
File details
Details for the file eda_datapilot-0.2.2-py2.py3-none-any.whl.
File metadata
- Download URL: eda_datapilot-0.2.2-py2.py3-none-any.whl
- Upload date:
- Size: 32.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 |
f0db03f4efc5ee194e2a4894d27931ad263b7f39acf1db765c52d7774787aed4
|
|
| MD5 |
ca8b912ecf176ce39e967d734fe8f67c
|
|
| BLAKE2b-256 |
584fe3d6805e389053180f97f7bcc9820e6d7892c2b92512253a311e6cd5fabd
|