Skip to main content

DataPilot - A powerful, automated Exploratory Data Analysis (EDA) library in Python

Project description

๐Ÿš€ DataPilot โ€” Automated EDA Library

PyPI version Python License: MIT

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.
  • 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.3.tar.gz (371.1 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.3-py2.py3-none-any.whl (33.4 kB view details)

Uploaded Python 2Python 3

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

Hashes for eda_datapilot-0.2.3.tar.gz
Algorithm Hash digest
SHA256 d2e6020c33620c745c7b954e40aff802fe94c0485d58b60e617b03334564fc63
MD5 d17e166eb6dc49ee7af09faa979a5690
BLAKE2b-256 8def3078948872e701834ea8a92668d2fc5ea243594379a6731d095645f50994

See more details on using hashes here.

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

Hashes for eda_datapilot-0.2.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 506c83338688abe7f6fbdd9ee950d3d45a93f1e7e53bb1eacd7d180392cdf95a
MD5 740ab5e72db59e76cc54dfa1201d4d6d
BLAKE2b-256 9fd87262a393c3ff670203644a01996f93b3e3c19f2a09bddec0c0619e19c5f2

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