frameon


Nameframeon JSON
Version 0.1.0a1 PyPI version JSON
download
home_pagehttps://github.com/PavelGrigoryevDS/frameon
SummaryFrameon extends pandas DataFrame with analysis methods while keeping all original functionality intact.
upload_time2025-07-27 11:38:10
maintainerNone
docs_urlNone
authorPavel Grigoryev
requires_python>=3.11
licenseMIT
keywords pandas data-analysis data-science
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Frameon

[![PyPI Version](https://img.shields.io/pypi/v/frameon.svg)](https://pypi.org/project/frameon/)
[![Python Versions](https://img.shields.io/pypi/pyversions/frameon.svg)](https://pypi.org/project/frameon/)
[![Documentation Status](https://readthedocs.org/projects/frameon/badge/?version=latest)](https://frameon.readthedocs.io/en/latest/?badge=latest)
[![Tests](https://github.com/PavelGrigoryevDS/frameon/actions/workflows/pytest.yml/badge.svg)](https://github.com/PavelGrigoryevDS/actions/workflows/pytest.yml)
[![Dependabot Status](https://api.dependabot.com/badges/status?host=github&repo=PavelGrigoryevDS/frameon)](https://dependabot.com)
[![License](https://img.shields.io/pypi/l/frameon.svg)](https://opensource.org/licenses/MIT)

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. Frameon has specific version requirements that may adjust installed packages.

### Basic Installation

#### Using pip
```bash
pip install frameon
```

#### Using poetry
```bash
poetry add frameon
```

### Installation with Virtual Environment

#### Python's built-in venv
```bash
# 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)
```bash
# Navigate to your project directory
poetry init  # if starting new project
poetry add frameon
```

---

## ๐Ÿš€ Quick Start

```python
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](https://frameon.readthedocs.io/en/latest/)

---

## ๐Ÿงช Examples

### Data Exploration

Quickly explore your data:

```python
from frameon import load_dataset, FrameOn as fo

titanic = fo(load_dataset('titanic'))
titanic['age'].explore.info()
```
<img src="https://raw.githubusercontent.com/PavelGrigoryevDS/frameon/main/images/info.png" width="600">

---

### Cohort Analysis

Quickly visualize user retention with a cohort heatmap:

```python
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()
```

<img src="https://raw.githubusercontent.com/PavelGrigoryevDS/frameon/main/images/cohort.png" width="800">


---

### Statistical Tests

Compare groups using bootstrap:

```python
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
)
```

<img src="https://raw.githubusercontent.com/PavelGrigoryevDS/frameon/main/images/bootstrap.png" width="700">

---

## ๐Ÿ”ง 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:

- [pandas](https://pandas.pydata.org/) - Core data structures
- [numpy](https://numpy.org/) - Numerical computing
- [plotly](https://plotly.com/python/) - Interactive visualization
- [scipy](https://www.scipy.org/) - Scientific computing
- [statsmodels](https://www.statsmodels.org/) - Statistical modeling
- [pingouin](https://pingouin-stats.org/) - Statistics
- [scikit-learn](https://scikit-learn.org/) - Machine learning

---

## ๐Ÿค Contributing

We welcome contributions! Here's how to help:

1. ๐Ÿ› Report bugs via [GitHub Issues](https://github.com/PavelGrigoryevDS/frameon/issues)
2. ๐Ÿ“ฅ Submit PRs for new features
3. ๐Ÿ“– Improve documentation

See our [Contributing Guidelines](https://github.com/PavelGrigoryevDS/frameon/blob/main/CONTRIBUTING.md) for details.

---

## ๐Ÿ“œ License

Frameon is licensed under the [MIT License](https://github.com/PavelGrigoryevDS/frameon/blob/main/LICENSE).

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/PavelGrigoryevDS/frameon",
    "name": "frameon",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "pandas, data-analysis, data-science",
    "author": "Pavel Grigoryev",
    "author_email": "pavel.grigoryev.ds@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/42/3e/40a390acad092489f9eea73267d8a1bc126662899603fe3f6ee741332c98/frameon-0.1.0a1.tar.gz",
    "platform": null,
    "description": "# Frameon\n\n[![PyPI Version](https://img.shields.io/pypi/v/frameon.svg)](https://pypi.org/project/frameon/)\n[![Python Versions](https://img.shields.io/pypi/pyversions/frameon.svg)](https://pypi.org/project/frameon/)\n[![Documentation Status](https://readthedocs.org/projects/frameon/badge/?version=latest)](https://frameon.readthedocs.io/en/latest/?badge=latest)\n[![Tests](https://github.com/PavelGrigoryevDS/frameon/actions/workflows/pytest.yml/badge.svg)](https://github.com/PavelGrigoryevDS/actions/workflows/pytest.yml)\n[![Dependabot Status](https://api.dependabot.com/badges/status?host=github&repo=PavelGrigoryevDS/frameon)](https://dependabot.com)\n[![License](https://img.shields.io/pypi/l/frameon.svg)](https://opensource.org/licenses/MIT)\n\nFrameon extends pandas DataFrame with analysis methods while keeping all original functionality intact.\n\n---\n\n## \u2728 Key Features\n\n- **Seamless integration**: Works with existing pandas DataFrames and Series\n- **Non-intrusive**: All pandas methods remain unchanged and fully available\n- **Modular access**: Additional functionality organized in clear namespaces\n- **Dual-level access**: Methods available for both entire DataFrames and individual columns\n\n---\n\n## \ud83d\udce6 Installation\n\n\u2757 **Recommended** Use a virtual environment to prevent potential conflicts with existing package versions in your system. Frameon has specific version requirements that may adjust installed packages.\n\n### Basic Installation\n\n#### Using pip\n```bash\npip install frameon\n```\n\n#### Using poetry\n```bash\npoetry add frameon\n```\n\n### Installation with Virtual Environment\n\n#### Python's built-in venv\n```bash\n# Create virtual environment\npython -m venv frameon_env\n\n# Activate it\nsource frameon_env/bin/activate \n\n# Install frameon\npip install frameon\n```\n\n#### Using poetry (manages virtual env automatically)\n```bash\n# Navigate to your project directory\npoetry init  # if starting new project\npoetry add frameon\n```\n\n---\n\n## \ud83d\ude80 Quick Start\n\n```python\nimport pandas as pd\nfrom frameon import FrameOn as fo\n\n# Create or load your DataFrame\ndf = pd.read_csv('your_data.csv')\n\n# Add Frameon functionality\ndf = fo(df)\n\n# Explore your data\ndf.explore.info()           # For entire DataFrame\ndf['price'].explore.info()  # For individual column\n```\n\n---\n\n## \ud83d\udcda Documentation\n\nFor complete documentation including API reference and more examples, visit:  \n[Frameon Documentation](https://frameon.readthedocs.io/en/latest/)\n\n---\n\n## \ud83e\uddea Examples\n\n### Data Exploration\n\nQuickly explore your data:\n\n```python\nfrom frameon import load_dataset, FrameOn as fo\n\ntitanic = fo(load_dataset('titanic'))\ntitanic['age'].explore.info()\n```\n<img src=\"https://raw.githubusercontent.com/PavelGrigoryevDS/frameon/main/images/info.png\" width=\"600\">\n\n---\n\n### Cohort Analysis\n\nQuickly visualize user retention with a cohort heatmap:\n\n```python\nfrom frameon import load_dataset, FrameOn as fo\n\nsuperstore = fo(load_dataset('superstore'))\nfig = superstore.analysis.cohort(\n    user_id_col='Customer ID', \n    date_col='Order Date', \n    revenue_col='Sales',\n    granularity='quarter',\n    include_period0=False,\n)\nfig.show()\n```\n\n<img src=\"https://raw.githubusercontent.com/PavelGrigoryevDS/frameon/main/images/cohort.png\" width=\"800\">\n\n\n---\n\n### Statistical Tests\n\nCompare groups using bootstrap:\n\n```python\nfrom frameon import load_dataset, FrameOn as fo\n\ntitanic = fo(load_dataset('titanic'))\ntitanic.stats.bootstrap(\n    dv='age',\n    between='alive',\n    reference_group='no',\n    statistic='mean_diff',\n    plot=True\n)\n```\n\n<img src=\"https://raw.githubusercontent.com/PavelGrigoryevDS/frameon/main/images/bootstrap.png\" width=\"700\">\n\n---\n\n## \ud83d\udd27 API Overview\n\nFrameon provides methods through these namespaces:\n\n| Namespace   | Description                          | DataFrame | Series |\n|-------------|--------------------------------------|-----------|--------|\n| `.explore`  | Data exploration and quality checks  | \u2713         | \u2713      |\n| `.preproc`  | Data preprocessing and cleaning      | \u2713         | \u2713      |\n| `.analysis` | Advanced analytical methods          | \u2713         | \u2717      |\n| `.viz`      | Visualization methods                | \u2713         | \u2717      |\n| `.stats`    | Statistical tests and analysis       | \u2713         | \u2717      |\n\n---\n\n## \u2699\ufe0f Built With\n\nFrameon utilizes these foundational libraries:\n\n- [pandas](https://pandas.pydata.org/) - Core data structures\n- [numpy](https://numpy.org/) - Numerical computing\n- [plotly](https://plotly.com/python/) - Interactive visualization\n- [scipy](https://www.scipy.org/) - Scientific computing\n- [statsmodels](https://www.statsmodels.org/) - Statistical modeling\n- [pingouin](https://pingouin-stats.org/) - Statistics\n- [scikit-learn](https://scikit-learn.org/) - Machine learning\n\n---\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! Here's how to help:\n\n1. \ud83d\udc1b Report bugs via [GitHub Issues](https://github.com/PavelGrigoryevDS/frameon/issues)\n2. \ud83d\udce5 Submit PRs for new features\n3. \ud83d\udcd6 Improve documentation\n\nSee our [Contributing Guidelines](https://github.com/PavelGrigoryevDS/frameon/blob/main/CONTRIBUTING.md) for details.\n\n---\n\n## \ud83d\udcdc License\n\nFrameon is licensed under the [MIT License](https://github.com/PavelGrigoryevDS/frameon/blob/main/LICENSE).\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Frameon extends pandas DataFrame with analysis methods while keeping all original functionality intact.",
    "version": "0.1.0a1",
    "project_urls": {
        "Documentation": "https://frameon.readthedocs.io/en/latest",
        "Homepage": "https://github.com/PavelGrigoryevDS/frameon",
        "Issues": "https://github.com/PavelGrigoryevDS/frameon/issues",
        "Repository": "https://github.com/PavelGrigoryevDS/frameon"
    },
    "split_keywords": [
        "pandas",
        " data-analysis",
        " data-science"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0dedc3033d5f94c731534d00e222bdceb58f8c91925ed3b67a92dd577a18413e",
                "md5": "72a6ad3a0b32cc45cb477b4673cfcca0",
                "sha256": "1b804822a53852274ad5c8555fbf36ad4d7ce8e2f465cb70e82c5eef1d07bea2"
            },
            "downloads": -1,
            "filename": "frameon-0.1.0a1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "72a6ad3a0b32cc45cb477b4673cfcca0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 1548797,
            "upload_time": "2025-07-27T11:37:46",
            "upload_time_iso_8601": "2025-07-27T11:37:46.864393Z",
            "url": "https://files.pythonhosted.org/packages/0d/ed/c3033d5f94c731534d00e222bdceb58f8c91925ed3b67a92dd577a18413e/frameon-0.1.0a1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "423e40a390acad092489f9eea73267d8a1bc126662899603fe3f6ee741332c98",
                "md5": "4673785e757272b9e68835140c9aba72",
                "sha256": "0c614699e4368ad1d9bc9fbd9c47f68e04cde97a31296c20c2ecd868bd264a27"
            },
            "downloads": -1,
            "filename": "frameon-0.1.0a1.tar.gz",
            "has_sig": false,
            "md5_digest": "4673785e757272b9e68835140c9aba72",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 1491026,
            "upload_time": "2025-07-27T11:38:10",
            "upload_time_iso_8601": "2025-07-27T11:38:10.558735Z",
            "url": "https://files.pythonhosted.org/packages/42/3e/40a390acad092489f9eea73267d8a1bc126662899603fe3f6ee741332c98/frameon-0.1.0a1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-27 11:38:10",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "PavelGrigoryevDS",
    "github_project": "frameon",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "frameon"
}
        
Elapsed time: 1.01193s