# Frameon
[](https://pypi.org/project/frameon/)
[](https://pypi.org/project/frameon/)
[](https://frameon.readthedocs.io/en/latest/?badge=latest)
[](https://github.com/PavelGrigoryevDS/actions/workflows/pytest.yml)
[](https://dependabot.com)
[](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[](https://pypi.org/project/frameon/)\n[](https://pypi.org/project/frameon/)\n[](https://frameon.readthedocs.io/en/latest/?badge=latest)\n[](https://github.com/PavelGrigoryevDS/actions/workflows/pytest.yml)\n[](https://dependabot.com)\n[](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"
}