[Python]实现用户注册数据的分析,计算复购率,回购率注销率等--在线教育行业分析案例连载2

本文是在线教育行业分析案例的第二篇,通过Python对用户注册数据进行分析,包括用户注册日期分布、延迟注册率、流失率、复购率和回购率。发现大部分学生在开学前注册,B学期和2014J学期有较高延迟注册率,CCC课程的用户注销率高,2014年的复购率有所增长但最近两学期下降,而用户回购率持续上升。需要关注流失率高的问题并找出原因。
摘要由CSDN通过智能技术生成


前言

该文章为连载的第二篇:用户注册数据分析

某家在线教育机构拥有自己开发的教育产品VLE,该教育机构提供了他们四个学期里,开展的七门课的数据,接下来我会根据这些数据,为该教育机构做一系列的数据分析,包括用户的RFM模型、用户分群特征、用户成绩分析等等。

该教育机构部分数据库结构如下

在这里插入图片描述


如下这一篇文章为:用户注册数据分析

studentRegistration记录了每学期每门课的用户注册信息,其中:

  1. code_presentation:学期
  2. code_module:课程
  3. id_student:用户编号
  4. date_registration:用户注册日期离开学日期的距离(如:-1,即用户在该学期该门课开学前一天注册,5即为用户在该学期该门课开学后五天注册)
  5. date_unregistration:用户注销日期离开学日期的距离

我们现在要计算并且可视化

  1. 用户注册日期分布
  2. 用户延迟注册率
  3. 用户流失率
  4. 用户复购率
  5. 用户回购率

一、导入库

import pandas as pd
import numpy as np
import datetime
import time
import matplotlib
matplotlib.rcParams['font.sans-serif'] = ['Arial Unicode MS']
matplotlib.rcParams['axes.unicode_minus']=False
import matplotlib.pyplot as plt
import seaborn as sns
import sklearn
from sklearn.preprocessing import LabelEncoder
np.set_printoptions(suppress=True)
pd.set_option('display.float_format', lambda x: '%.4f' % x)


二、 用户注册日期分布

我们可以跟住用户注册日期的分布,去判断用户集中在开课前多久选择去注册这一门课。

module=sorted(regi["code_module"].unique().tolist())
presentation=sorted(regi["code_presentation"].unique().tolist())

这里需要注意的是,不是每一学期都会开展这七门课


fig,axes=plt.subplots(7,4,figsize=(14,14))
for m in range(len(module)):
    for p in range(len(presentation)):
        if len(regi[(regi["code_module"]==module[m])&(regi["code_presentation"]==presentation[p])]["date_registration"])==0:
            axes[m][p].axis('off')
        else:
            sns.distplot(regi[(regi["code_module"]==module[m])&(regi["code_presentation"]==presentation[p])]["date_registration"],norm_hist=True,ax=axes[m][p])
            axes[m][p].set_title(module[m]+" in "+presentation[p])

plt.tight_layout()

在这里插入图片描述

从分布图来看,大部分学生都在开学前完成注册,并在开学前50天至开学当天,会有一个注册的小高峰。


二、用户延迟注册率

即date_unregistration>0,在开学后注册的学生比率。

对数据进行聚合处理一下,用groupby的方法计算每学期每门课的每一天都有多少人注册。

line_plot_df=regi.groupby(["code_presentation","code_module","date_registration"]).agg({
   "id_student":pd.Series.nunique}).rese
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值