Metadata-Version: 2.1
Name: fabcohort
Version: 0.2.5
Summary: for cohort analysis
Home-page: https://github.com/linliD/fabcohort/
Author: Linli Ding
Author-email: linli@joinbonnet.com
License: MIT
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown

# fabcohort

A small demo library for a fab_cohort about cohort analysis

### Installation

```
pip install fabcohort
```

### Get started

How to do cohort analysis with this lib:

#### **FUNCTION1**:

Vanilla cohort analysis

Pandas df.head(5) should look like -
| user_id | date | count |
| -------- | -------- | -------- |
| 5fb507360cd5c0 | 2023-04-01 | 1 |
| weg507360cwfw3 | 2023-03-01 | 1 |
| 6001ef966c13w3 | 2023-02-01 | 1 |
| weg507360cwfw3 | 2023-04-01 | 1 |
| 6001ef966c13w3 | 2023-03-01 | 1 |

```Python
from fab_cohort import Cohort

# Instantiate a Cohort object
cohort = Cohort()

# Call the count_cohort method, e.g., MS for month start, WS for week start
result = cohort.count_cohort(df, frequency)

```

#### **FUNCTION2**:

Cohort analysis by segments

Pandas df.head(5) should look like -
| user_id | date | segment | count |
| -------- | -------- | -------- | -------- |
| 5fb507360cd5c0 | 2023-04-01 | A,B | 1 |
| weg507360cwfw3 | 2023-03-01 | A, | 1 |
| 6001ef966c13w3 | 2023-02-01 | C,D | 1 |
| weg507360cwfw3 | 2023-04-01 | B,D | 1 |
| 6001ef966c13w3 | 2023-03-01 | A,B | 1 |

```Python
from fab_cohort import Cohort

# Instantiate a Cohort object
cohort = Cohort()

# Call the count_cohort_segments method, e.g., MS for month start, WS for week start
result = cohort.count_cohort_segments(df, frequency)

# (Optional) if you have multiple segments just parse it
result[['segment1', 'segment2']] = result['segment'].str.split(',', expand=True)
result.drop('segment', axis=1, inplace=True)

```

#### **FUNCTION3**:

Convert the count to percentage

```Python
# once the above result is obtained

# Call the count_cohort method
result_pct = cohort.to_pct(result)

# (Optional) if you have multiple segments just parse it
result[['segment1', 'segment2']] = result['segment'].str.split(',', expand=True)
result.drop('segment', axis=1, inplace=True)

```


