Skip to content

🐼✨ Frameon - enhances pandas DataFrames with analysis methods while preserving all native functionality

License

Notifications You must be signed in to change notification settings

PavelGrigoryevDS/frameon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Frameon

PyPI Versions Python Versions Documentation Status Tests Lint Status codecov Code style: Black
Dependabot License

Frameon extends pandas DataFrame with analysis methods while keeping all original functionality intact.


✨ Key Features

  • Seamless integration: Works with existing pandas DataFrames and Series
  • Non-intrusive: All pandas methods remain unchanged and fully available
  • Modular access: Additional functionality organized in clear namespaces
  • Dual-level access: Methods available for both entire DataFrames and individual columns

πŸ“¦ Installation

❗ Recommended: Use a virtual environment to prevent potential conflicts with existing package versions in your system.

Basic Installation

Using pip

pip install frameon

Using poetry

poetry add frameon

Installation with Virtual Environment

Python's built-in venv

# Create virtual environment
python -m venv frameon_env

# Activate it
source frameon_env/bin/activate 

# Install frameon
pip install frameon

Using poetry (manages virtual env automatically)

# Navigate to your project directory
poetry init  # if starting new project
poetry add frameon

πŸš€ Quick Start

import pandas as pd
from frameon import FrameOn as fo

# Create or load your DataFrame
df = pd.read_csv('your_data.csv')

# Add Frameon functionality
df = fo(df)

# Explore your data
df.explore.info()           # For entire DataFrame
df['price'].explore.info()  # For individual column

πŸ“š Documentation

For complete documentation including API reference and more examples, visit:
Frameon Documentation


πŸ§ͺ Examples

Data Exploration

Quickly explore your data:

from frameon import load_dataset, FrameOn as fo

titanic = fo(load_dataset('titanic'))
titanic['age'].explore.info()


Cohort Analysis

Quickly visualize user retention with a cohort heatmap:

from frameon import load_dataset, FrameOn as fo

superstore = fo(load_dataset('superstore'))
fig = superstore.analysis.cohort(
    user_id_col='Customer ID', 
    date_col='Order Date', 
    revenue_col='Sales',
    granularity='quarter',
    include_period0=False,
)
fig.show()


Statistical Tests

Compare groups using bootstrap:

from frameon import load_dataset, FrameOn as fo

titanic = fo(load_dataset('titanic'))
titanic.stats.bootstrap(
    dv='age',
    between='alive',
    reference_group='no',
    statistic='mean_diff',
    plot=True
)


πŸ”§ API Overview

Frameon provides methods through these namespaces:

Namespace Description DataFrame Series
.explore Data exploration and quality checks βœ“ βœ“
.preproc Data preprocessing and cleaning βœ“ βœ“
.analysis Advanced analytical methods βœ“ βœ—
.viz Visualization methods βœ“ βœ—
.stats Statistical tests and analysis βœ“ βœ—

βš™οΈ Built With

Frameon utilizes these foundational libraries:


🀝 Contributing

We welcome contributions! Here's how to help:

  1. πŸ› Report bugs via GitHub Issues
  2. πŸ“₯ Submit PRs for new features
  3. πŸ“– Improve documentation

See our Contributing Guidelines for details.


πŸ“œ License

Frameon is licensed under the MIT License.