Skip to main content

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.
  • EDAConfig configures 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

eda_datapilot-0.2.2.tar.gz (370.0 kB view details)

Uploaded Source

Built Distribution

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

eda_datapilot-0.2.2-py2.py3-none-any.whl (32.4 kB view details)

Uploaded Python 2Python 3

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

Hashes for eda_datapilot-0.2.2.tar.gz
Algorithm Hash digest
SHA256 812bfa712ffe212b41c0e1daa720ae5bf6e082558243f96661a69cf5df7ef471
MD5 bfe60b0c6514b0df805729519f7f259d
BLAKE2b-256 801cfd1432dd7bb7d4d06ea4a385db21e2e6dfb1ce8fab179237e98fbf6906fa

See more details on using hashes here.

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

Hashes for eda_datapilot-0.2.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f0db03f4efc5ee194e2a4894d27931ad263b7f39acf1db765c52d7774787aed4
MD5 ca8b912ecf176ce39e967d734fe8f67c
BLAKE2b-256 584fe3d6805e389053180f97f7bcc9820e6d7892c2b92512253a311e6cd5fabd

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