🦉 OwlMix
OwlMix is a Python library for automated exploratory data analysis (EDA), designed for time-series and marketing mix modeling (MMM) workflows. OwlMix helps you quickly understand your data, identify trends, and prepare for modeling.
Features
- Automated EDA report generation (HTML/JSON)
- Time series lag and correlation analysis
- Variable relationship and distribution insights
- Causality and trend detection
- Easy-to-use API
Quick Start
import pandas as pd
from owlmix.reporting import ReportBuilder, ReportHTMLRenderer
csv_file = "path/to/your/csv/file.csv"
df = pd.read_csv(csv_file)
report_builder = ReportBuilder(
df=df,
target_col="kpi",
date_col="date"
)
# Update the config, if needed
report_builder.config.update_config(
acf_pacf={
"columns": ["kpi"],
"n_lags": 5
},
vif={
"features": ["tv_spend", "digital_spend", "radio_spend"]
},
correlation={
"columns": ["kpi", "tv_spend"],
"n_lags": 8,
"precision": 5
},
box_plot={
"columns": ["kpi", "tv_spend", "digital_spend", "radio_spend", "tv_grp", "digital_imp"],
"n_plot_per_row": 3,
"method": "zscore",
"threshold": 1.5 # default is 3 for method "zscore" and 1.5 for method "iqr"
},
ccf={
"feature_columns": ['tv_spend'],
"max_lag": 3
},
# update the other configs
)
report_builder.add_all_sections(verbose=True)
report = report_builder.build()
report_builder.save("result.json")
renderer = ReportHTMLRenderer()
html_str = renderer.render_from_json("result.json")
renderer.save_html("report.html")
Load Config from Dict, YAML, or JSON
You can load report section config using a Python dictionary, a YAML file, or a JSON file.
from owlmix.reporting import ReportBuilder
report_builder = ReportBuilder(
df=df,
target_col="kpi",
date_col="date"
)
# 1) From Python dict
config_dict = {
"acf_pacf": {
"columns": ["kpi"],
"n_lags": 10,
"precision": 2
},
"ccf": {
"feature_columns": ["tv_spend", "digital_spend"],
"max_lag": 3
}
}
report_builder.config.update_config_from_dict(config_dict, strict=True)
# 2) From YAML file
report_builder.config.update_config_from_yaml("report_config.yaml", strict=True)
# 3) From JSON file
report_builder.config.update_config_from_json("report_config.json", strict=True)
Notes:
strict=Trueraises an error if unknown section keys are present.- Supported top-level section keys include:
acf_pacf,vif,correlation,causality,box_plot,ccf,response_curve,response_summary,dist_numeric, andtime_series. - YAML/JSON must have a dictionary at the top level, and each section value must also be a dictionary.
Installation
pip install owl-mix
Documentation
Metadata
Release files for owl-mix 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| owl_mix-1.1.0.tar.gz | 87.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| owl_mix-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 224.8 kB
Release files / owl_mix-1.1.0.tar.gz
| Download URL | owl_mix-1.1.0.tar.gz |
|---|---|
| Size | 87.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d0d4d8085d45eff7044c457da7695c64cc66c859713c49869de8a073735f60a5
|
|
BLAKE2b-256 checksum How to use checksums |
ff2105ef31754d923ace0067376ec1421e1168ccf88f8dd601325247a3081f98
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|
Release files / owl_mix-1.1.0-py3-none-any.whl
| Download URL | owl_mix-1.1.0-py3-none-any.whl |
|---|---|
| Size | 137.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dc7df42369f9b837eb34f2567eb02c0b633e1d237676fa45aa11324bcb6484f7
|
|
BLAKE2b-256 checksum How to use checksums |
978b56c066059d12f7f5d2d4a2205df2d60fda87075b52d8a73d0f645c9d3b8e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|