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.1.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.1-py2.py3-none-any.whl (32.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file eda_datapilot-0.2.1.tar.gz.

File metadata

  • Download URL: eda_datapilot-0.2.1.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.1.tar.gz
Algorithm Hash digest
SHA256 804ffef9c5fa83cf2138ad7d697c60356cb0c41c924a3103c7e942a96d5ce15b
MD5 7b149988cb848159616793070412479e
BLAKE2b-256 1869beeef993dcd0302b1a20f11601720b3002f2ae84c77a72ff7de691b94f69

See more details on using hashes here.

File details

Details for the file eda_datapilot-0.2.1-py2.py3-none-any.whl.

File metadata

  • Download URL: eda_datapilot-0.2.1-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.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 82d37f2c4812ca976c76dad60daa847e12d5e7164ac143ff3e49146e05df2d22
MD5 b47ab43697b28fd2c300b2014a8c3514
BLAKE2b-256 ca91f7bf75962d13cc3f01c5dca6373177228fb2edc502fbbefd489be1562c92

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