在产品正式上线后,我们需要对产品的客群对象进行分析,此时产品的群组分析会给予我们找到一定的方向。
核心的维度:产品 ->客群,时间->聚类周期现象

首先读取数据集:

import numpy as np
import pandas as pd
df = pd.read_excel('./Online Retail.xlsx')

查看数据前五列/info

#%%df.head()#%%df.info()



通过结果,我们可以看到数据有8个字段,其中,Description列和CustomerId列有缺失值,CustomerId列需要去空值

处理空值

#%%
#查看缺失值分布情况
df.isnull().sum()#%%df= df.dropna(subset=['CustomerID'])#%%
#查看空的列的和
df.isnull().sum().sum()


处理重复值

#%%
# 查看整体的重复行情况
df.duplicated().sum()#%%
# 删除重复行
df = df.drop_duplicates()#%%
# 查看处理后的结果
df.duplicated().sum()


处理完空值和重复值后,我们来查看数据的统计学参数,主要关注极大极小值。

df.describe()


注意: 存在0的单价值和negative的UnitPrice值,需要过滤

#%%
df=df[(df['Quantity']>0) & (df['UnitPrice']>0)]
df.describe() #%%
#查看数据集的shape(几行几列)
df.shape


现在开始做Cohort Analysis(未完待续)
这里简单做个脑图收敛一下需要分析的目标

#%%
#找出最早的购买月份
def get_month(x) : return dt.datetime(x.year,x.month,1)
df['InvoiceMonth'] = df['InvoiceDate'].apply(get_month)
grouping = df.groupby('CustomerID')['InvoiceMonth']
df['CohortMonth'] = grouping.transform('min')
#列出倒数5行
df.tail()

截了后半部分的图

#对月份跨度做diff,然后输出Index
def get_month_int (df,column):year = df[column].dt.yearmonth = df[column].dt.monthday = df[column].dt.dayreturn year, month , day invoice_year,invoice_month,_ = get_month_int(df,'InvoiceMonth')
cohort_year,cohort_month,_ = get_month_int(df,'CohortMonth')year_diff = invoice_year - cohort_year
month_diff = invoice_month - cohort_month df['CohortIndex'] = year_diff * 12 + month_diff + 1
df['CohortIndex']

# 计算每个群组的月活跃用户
grouping = df.groupby(['CohortMonth', 'CohortIndex'])
print(grouping)
# 返回对象中唯一元素的个数 cohort_data customerID的个数
cohort_data = grouping['CustomerID'].apply(pd.Series.nunique)
print(cohort_data)
# cohort_data.to_csv('cohort_data.csv')
# 抽出CohortMonth,CohortIndex的索引字段出来以做数据透视表
cohort_data = cohort_data.reset_index()
cohort_counts = cohort_data.pivot(index='CohortMonth',columns='CohortIndex',values='CustomerID')
cohort_counts


# 计算留存率
cohort_size = cohort_counts.iloc[:,0]
retention = cohort_counts.divide(cohort_size,axis=0) #axis=0  确保沿着行轴划分
retention.round(3) * 100 #to show t

#绘制热力图
plt.figure(figsize=(15, 8))
plt.title('Retention rates')
sns.heatmap(data=retention,annot = True,fmt = '.0%',vmin = 0.0,vmax = 0.5,cmap="BuPu_r")
plt.show()


结论:留存分析的纵轴我们可以看到产品的生命周期,横轴可以看到用户的生命周期,留存分析很容易的描绘出产品的生命周期,在AARRR模型里,如何提高用户留存是一个永恒的话题,产品留存的核心要素是什么,一直是我们分析产品核心价值的永恒话题,接下来我们可以做简单的RFM模型分析

基于用户的产品分析之Cohort Analysis(群组分析,留存分析)相关推荐

  1. 周五话运营 | 和用户谈一段不分手的恋爱(留存分析)

    还有什么事情比看到新用户的到来更幸福么? 那一定是看到老用户又支持了我们的产品. 运营业界有一个众所周知的真理,拉新贵,留存难,促活烦.作为一名运营人员,每天工作超级难做,方法同质化,套路谁都懂,活动 ...

  2. 基于数据分析的“用户群组+推送”,提升用户粘性

    背景 受众细分是精细化运营的重要方法之一.由于用户的偏好不同,对产品的需求也不一样,要想更好地培养用户粘性,就需要因人施策,精细化运营.受众细分是根据用户属性和行为数据,将具有相同或类似特征的用户归为 ...

  3. 分布分析和分组分析_如何通过群组分析对用户进行分组并获得可行的见解

    分布分析和分组分析 数据分析 (DATA ANALYSIS) Being a regular at a restaurant is great. 乙 eing定期在餐厅是伟大的. When I sta ...

  4. 陈桥五笔用户编号获取_用户群组分析

    目录: 项目介绍 定义阐述 分析流程 总结展示 一.项目介绍 背景: 当我们在做用户分析时,会遇到这样的一个问题,一个用户使用APP时,会留下一连串的使用数据,可能是一月份的购买了1次,二月份购买了2 ...

  5. 数据分析方法——用户群组分析

    文章目录 数据分析方法--用户群组分析 内容摘要 一.群组分析方法介绍 二.项目背景及目的 三.python实操 (1)数据导入 (2)数据处理 (3)用户群组存留率计算 (4)用户群组存留率可视化 ...

  6. 简述linux下用户与组相关的配置文件,Linux用户和群组管理的主要配置文件

    一. 用户和群组的类型 1.Linux用户账户的类型 Linux下的用户可以分为三类: 超级用户.系统用户.普通用户. 1)超级用户root root用户就是超级用户.系统管理员,UID为0. 2)系 ...

  7. Linux-新建用户/群组以及修改文件权限

    Linux 基础 操作系统 操作系统 Operating System 简称 OS ,是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁. 操作系统会控制其他程序运行,管理系统资源 ...

  8. Linux:用户与群组管理

    1,用户与用户组 1.1,用户分类 超级用户(UID=0):root,它具有一切权限,只有进行系统维护(例如建立用户等)或其他必要情形下才用超级用户登录,以避免系统出现安全问题. 系统用户(UID=1 ...

  9. Linux用户与群组管理

    用户账户与群组概念 Linux操作系统是多用户多任务的操作系统,系统依据账户来区分属于每个用户的文件.进程,任务,并给每个用户提供特定的工作环境(例如,用户的工作目录.shell版本以及图形化的环境配 ...

最新文章

  1. 华为公有云架构解决方案
  2. hdu 1556 Color the ball
  3. 好程序员Web前端分享程序的三大结构(二)while循环
  4. 在C#中使用Selenium WebDriver执行JavaScript
  5. 透过汇编另眼看世界之函数调用
  6. SAP CRM后台取数据逻辑的性能优化
  7. c语言算ex自定义函数,用C语言写定积分的通用函数:sin(x),cos(x),eX.
  8. echarts年龄饼图_echarts自定义饼图
  9. 房屋建筑与装饰工程工程量计算新旧规范对比(二)
  10. 自制 arduino 音符频率对照表(音符在arduino里对应的值)
  11. 智慧医疗整体解决方案
  12. 四级英语口语模拟测试软件,英语四级口语模拟题:非常有用
  13. OPenGL 基本知识(根据自己理解整理)
  14. C语言中用零作为终止标记,求出一批非零整数中的偶数.奇数的平均值,用零作为终止标记的程序...
  15. 【计算机网络】计算机网络总结
  16. hta 北京自动挂号器
  17. Linux用户权限特殊权限
  18. go-stat-reporter(1):golang开发通用报表展示系统,设计数据结构
  19. java 有序的list_Java 中的 List —— 有序序列
  20. 课程体系包括哪些要素_课程体系包括哪些要素

热门文章

  1. react-native电影简介app,了解一下?(android端)
  2. 计算机组成原理语言方框图,计算机组成原理实验报告3 语言方框图
  3. 应用计算机解数学模型之我见,计算机模拟算法在数学建模中的应用
  4. 信息学奥赛一本通1336:寻找树根和孩子(图论算法-树)详细讲解
  5. iOS 打开本地或下载excel文件
  6. 9.3.2另一种计算机器2
  7. Windows搭建青龙面板教程
  8. [LibreOJ 3124]【CTS2019】氪金手游【容斥原理】【概率】【树形DP】
  9. MySQL的数据库引擎介绍
  10. 今天是一位朋友的生日,送给她最美丽的祝福.