Skip to main content

Library to help accelerating Exploratory Data Analysis (EDA)

Project description

edaSol

A Python library to accelerate Exploratory Data Analysis (EDA).

edaSol provides simple, intuitive functions to quickly understand your dataset's structure, quality, and distributions without writing repetitive boilerplate code.

Features

  • Quick Data Summary - Get data types, null counts, unique values at a glance
  • Data Quality Reports - Comprehensive analysis of missing values, duplicates, and memory usage
  • Outlier Detection - IQR-based outlier identification
  • Categorical Analysis - Statistics for categorical columns
  • Visualization Suite - Distribution plots, correlation heatmaps, boxplots, and more

Installation

pip install edaSol

Or install from source:

git clone https://github.com/SoloWPM23/edaSol.git
cd edaSol
pip install -e .

Quick Start

import pandas as pd
from edaSol import quick_summary, data_quality_report, plot_numerical_dist

# Load your data
df = pd.read_csv('your_data.csv')

# Get a quick summary of all columns
summary = quick_summary(df)
print(summary)

# Generate a comprehensive quality report
report = data_quality_report(df)
print(f"Shape: {report['shape']}")
print(f"Duplicates: {report['duplicates']}")
print(f"Memory: {report['memory_usage']} MB")

# Visualize numeric distributions
plot_numerical_dist(df)

API Reference

Core Functions

quick_summary(df, columns=None)

Returns a summary DataFrame with key statistics for each column.

from edaSol import quick_summary

summary = quick_summary(df)
# Returns: Data Type, Null Count, Null Percent, Unique Count, Sample Value

detect_outliers_iqr(df, column, return_bounds=False)

Detects outliers using the IQR (Interquartile Range) method.

from edaSol import detect_outliers_iqr

# Get outlier indices
outliers = detect_outliers_iqr(df, 'price')

# Get outliers with bounds
outliers, lower, upper = detect_outliers_iqr(df, 'price', return_bounds=True)

describe_categorical(df, columns=None)

Returns descriptive statistics for categorical columns.

from edaSol import describe_categorical

cat_stats = describe_categorical(df)
# Returns: Count, Unique, Top Value, Top Frequency, Top Percent

detect_duplicates(df, subset=None, keep='first')

Finds and returns duplicate rows.

from edaSol import detect_duplicates

duplicates = detect_duplicates(df)
duplicates_by_cols = detect_duplicates(df, subset=['name', 'email'])

data_quality_report(df)

Generates a comprehensive data quality report.

from edaSol import data_quality_report

report = data_quality_report(df)
# Returns dict with: shape, memory_usage, dtypes, missing, duplicates,
# numeric_summary, categorical_summary

Visualization Functions

plot_numerical_dist(df, columns=None, figsize=(12, 4), show=True)

Creates histogram with KDE plots for numeric columns.

from edaSol import plot_numerical_dist

plot_numerical_dist(df)
plot_numerical_dist(df, columns=['age', 'salary'])

plot_correlation_heatmap(df, figsize=(10, 8), annot=True, mask_upper=True, show=True)

Creates a correlation heatmap for numeric columns.

from edaSol import plot_correlation_heatmap

plot_correlation_heatmap(df)
plot_correlation_heatmap(df, mask_upper=False)  # Show full matrix

plot_missing_matrix(df, figsize=(12, 6), show=True)

Visualizes missing values as a heatmap matrix.

from edaSol import plot_missing_matrix

plot_missing_matrix(df)

plot_categorical_dist(df, columns=None, figsize=(12, 4), top_n=10, show=True)

Creates bar plots for categorical columns.

from edaSol import plot_categorical_dist

plot_categorical_dist(df)
plot_categorical_dist(df, top_n=5)  # Show only top 5 categories

plot_boxplots(df, columns=None, figsize=(12, 4), show=True)

Creates boxplots to visualize distributions and outliers.

from edaSol import plot_boxplots

plot_boxplots(df)
plot_boxplots(df, columns=['age', 'income'])

plot_pairplot(df, columns=None, hue=None, diag_kind='kde', show=True)

Creates pairwise scatter plots for numeric columns.

from edaSol import plot_pairplot

plot_pairplot(df)
plot_pairplot(df, hue='category')  # Color by category

Requirements

  • Python >= 3.8
  • pandas >= 1.5.0
  • numpy >= 1.20.0
  • matplotlib >= 3.5.0
  • seaborn >= 0.11.0

License

MIT License

Author

Solo Manurung (solowandika490@gmail.com)

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

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

edasol-0.1.1.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

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

edasol-0.1.1-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file edasol-0.1.1.tar.gz.

File metadata

  • Download URL: edasol-0.1.1.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for edasol-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4235833c78a296ff77c8a89df8eb6aabae5d3272c7a8658aaa883fa9042381bd
MD5 d4a0920dec81536c7cb6be519502f987
BLAKE2b-256 28d304e389f264995ea0cd861111635eb43d0f5fe28b67b7942dc31639d24630

See more details on using hashes here.

File details

Details for the file edasol-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: edasol-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for edasol-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fdee1f24a20d2fa2598f11391ba2dabe96f163d2372bf25dab623bc1a4c6039b
MD5 0113cc8e50134753764521ea8085c8be
BLAKE2b-256 80404f4741f6b0af6a49ba21dd2080d1e710771b5c0429d4c88074c1ddcb59ec

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