Skip to main content

A beginner-friendly dataset understanding library for Data Science learners.

Project description

maheeds ๐Ÿ“Š

A beginner-friendly dataset understanding library for Data Science learners.

Python 3.11+ License: MIT Version


Project Vision

Most students struggle when they receive a dataset for the first time.They don't know:

  • What the dataset actually contains
  • Which columns are numbers vs categories
  • Which columns have missing values
  • What to use as the target variable
  • What questions they can even ask

maheeds solves this.

One function call โ€” md.understand(df) โ€” gives you a complete, beginner-friendly analysis of your dataset so you know exactly where to begin.


Quick Start

import pandas as pd
import maheeds as md

df = pd.read_csv("placement.csv")

# Run the full analysis
report = md.understand(df)

# View the summary table
print(report.summary)

# Get all details as a dictionary
data = report.to_dict()

# Save a beautiful HTML report
report.to_html("my_report.html")

Installation

# Install from PyPI
pip install maheeds

# Or install locally from source
git clone https://github.com/yourusername/maheeds.git
cd maheeds
pip install -e .

Requirements: Python 3.11+, pandas 2.0+, numpy 1.25+


Example Output

Given a placement dataset, report.summary returns:

          Metric                    Value
            Rows                      200
         Columns                        9
Numerical Columns                        3
Categorical Columns                      5
Datetime Columns                         0
 Missing Columns                         1
   Missing Cells                         9
  Duplicate Rows                         3
Constant Columns                         1
Potential Target Columns          placed, internship

Suggested Questions

โ“ Does cgpa affect placed?
โ“ Does department affect placed?
โ“ Does attendance affect placed?
โ“ Does internship affect placed?
โ“ Is there a relationship between cgpa and attendance?
โ“ What is the distribution of cgpa?

HTML Report

Call report.to_html("report.html") to save a styled, browser-ready HTML report with colour-coded badges, missing value detail, target suggestions, and questions.


๐Ÿ”Œ Full API Reference

md.understand(df)

Analyses a pandas DataFrame and returns an UnderstandReport object.

report = md.understand(df)

Parameters

Parameter Type Description
df pd.DataFrame The dataset to analyse

Raises

Exception When
TypeError If df is not a DataFrame
ValueError If df is completely empty

UnderstandReport attributes

Attribute Type Description
rows int Total row count
columns int Total column count
numerical_columns list[str] Numerical column names
categorical_columns list[str] Categorical column names
datetime_columns list[str] Datetime column names
missing_columns list[str] Columns with missing values
missing_cells_count int Total missing cells
missing_per_column dict Missing count per column
constant_columns list[str] Constant (useless) columns
duplicate_rows_count int Duplicate row count
potential_targets list[str] Suggested target columns
target_reasons dict Reason per suggestion
questions list[str] Beginner EDA questions

UnderstandReport methods

Method Returns Description
report.summary pd.DataFrame Tidy Metric โ†’ Value table
report.to_dict() dict Full results as dictionary
report.to_html() str HTML string
report.to_html("path.html") str HTML string + saves to file

๐Ÿ“ Package Structure

maheeds/
โ”œโ”€โ”€ core/
โ”‚   โ”œโ”€โ”€ shape.py          # Row / column count
โ”‚   โ”œโ”€โ”€ datatype.py       # Numerical / categorical / datetime detection
โ”‚   โ”œโ”€โ”€ missing.py        # Missing value analysis
โ”‚   โ”œโ”€โ”€ uniqueness.py     # Constant columns + duplicate rows
โ”‚   โ”œโ”€โ”€ target.py         # Target column suggestions
โ”‚   โ””โ”€โ”€ questions.py      # Beginner question generation
โ”œโ”€โ”€ reports/
โ”‚   โ”œโ”€โ”€ dataframe_report.py   # Summary DataFrame builder
โ”‚   โ””โ”€โ”€ html_report.py        # HTML report renderer
โ”œโ”€โ”€ models/
โ”‚   โ””โ”€โ”€ report.py             # UnderstandReport dataclass
โ”œโ”€โ”€ understand.py             # Public API entry point
โ””โ”€โ”€ __init__.py

Running Tests

# Install test dependencies
pip install pytest pytest-cov

# Run all tests
pytest

# Run with coverage
pytest --cov=maheeds --cov-report=term-missing

Future Roadmap

Version 0.2 โ€“ Correlation Insights

  • Automatically compute correlations between numerical columns
  • Highlight the top positive and negative correlations
  • Warn about multicollinearity

Version 0.3 โ€“ Visualization Suggestions

  • Recommend the right chart type for each column pair
  • Generate matplotlib / seaborn chart code snippets
  • Export a visual EDA starter notebook

Version 0.4 โ€“ Dataset Health Score

  • A 0โ€“100 score rating data quality
  • Breakdown by completeness, consistency, uniqueness, and relevance
  • Actionable improvement tips

Version 0.5 โ€“ Beginner EDA Assistant

  • Interactive CLI / notebook widget
  • Step-by-step guided EDA workflow
  • Integrated with pandas-profiling style deep dives

๐Ÿค Contributing

Pull requests are welcome! Please open an issue first to discuss what you'd like to change.

git clone https://github.com/yourusername/maheeds.git
cd maheeds
pip install -e ".[dev]"
pytest

๐Ÿ“œ License

MIT ยฉ 2026 Maheed

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

maheeds-0.1.1.tar.gz (10.3 MB view details)

Uploaded Source

Built Distribution

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

maheeds-0.1.1-py3-none-any.whl (12.2 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for maheeds-0.1.1.tar.gz
Algorithm Hash digest
SHA256 918833f8fa50c96054b7663a7b49a3564b683a9222f653984fc9fa8bdc5643a5
MD5 b2227491807ac895caff8d5ef025f95c
BLAKE2b-256 1fd1dddbc574c3c916092dabeb8ebe9d6f1ecb76bc1da8d930aa40894e4e2797

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for maheeds-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6cae08b76fae2abc562be42c147bb37e1db99a87f8c4be2464c1f6f11b2dd5a5
MD5 8f839da4e9401fae30218a19a9dd2f6c
BLAKE2b-256 cbf68d3469d02a611960211cf890591e0431315bfd258d86c8c45993c4dbd03c

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