A beginner-friendly dataset understanding library for Data Science learners.
Project description
maheeds ๐
A beginner-friendly dataset understanding library for Data Science learners.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
918833f8fa50c96054b7663a7b49a3564b683a9222f653984fc9fa8bdc5643a5
|
|
| MD5 |
b2227491807ac895caff8d5ef025f95c
|
|
| BLAKE2b-256 |
1fd1dddbc574c3c916092dabeb8ebe9d6f1ecb76bc1da8d930aa40894e4e2797
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6cae08b76fae2abc562be42c147bb37e1db99a87f8c4be2464c1f6f11b2dd5a5
|
|
| MD5 |
8f839da4e9401fae30218a19a9dd2f6c
|
|
| BLAKE2b-256 |
cbf68d3469d02a611960211cf890591e0431315bfd258d86c8c45993c4dbd03c
|