首先介绍markdown,这是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。在日常分析中可以使用其对分析过程进行解释说明,这样便于以后的复盘。切换用快捷键Esc+m,切回来则用Esc+y。接下来我们需要使用python对一份网上的下载数据进行一个完整的数据分析过程。
1.加载数据
数据来源网上,是用户在一家CD网站上的消费记录,将近7万条。数据储存格式为TXT,读取则用函数read_table,包含四个字段:用户ID(user_id),购买日期(order_date),购买产品数(order_products),购买金额(order_amount)。
一般加载成功后,会使用函数head、tail、count和info对数据进行查看,看看列名是否对应、数量情况、以及数据格式是否正确等。
2.数据清洗
这里的数据是比较规范的了,没有需要清洗的地方。不过在使用函数info中,注意到order_date列的格式不是日期而是整型,所以使用函数to_datetime需要修改格式。
3.初始分析:描述统计,使用函数describe。
4.整体分析:按月进行用户消费趋势分析
首先这里是按月分析,那么就需要增加一个月的字段,使同月下该字段数据相同,可以根据日期衍生,用函数astype。
(1)每月消费总金额:即用求和函数sum
根据结果画出折线图,再画图前得提前加载可视化包并可以显示。这里需要注意的是每种图形所对应的函数。折线图(plot),柱形图(bar),直方图(hist),箱线图(box),密度图(kde),面积图(area),散点图(scatter),饼图(pie)。
(2)每月的消费次数:即用计数函数count,并画出折线图。
(3)每月的产品购买量:即对产品数用求和函数sum。
(4)每月的消费人数
这里有两种思路:一种是对月份和ID进行分组,然后在对其计数。
另一种是删除重复的行,这里只要month和user_id重复就删除,使用函数drop_duplicates。
(5)用户的平均消费金额
(6)用户平均消费次数
5.个体分析:按用户进行个体消费分析
很显然,这里需要对用户进行分组,用函数groupby。
(1) 消费金额、消费产品数的描述统计
(2)用户消费金额和消费产品数的散点图
过滤极值可以使用query函数。
(3)用户消费金额和产品数的分布图
(4)用户累计消费金额占比
6.用户消费行为分析
(1)用户第一次消费与最后一次消费分析
首次消费,也可以说是新客,时间最早的一次消费,即对时间求最小值,这里要使用函数value_counts用来统计每天的新客人数(数据频率)。
用户最后一次消费,也可以说是流失客,即对消费时间求最大值。
(2)新老客消费比
仅消费一次用户占比
每天新客占比
(3)用户分层
RFM模型:R(Recency)表示客户购买的时间有多远,F(Frequency)表示客户在时间内购买的次数,M (Monetary)表示客户在时间内购买的金额。
新客:第一次购买
活跃客:连续两月购买
回流客:上月没有购买(不包含第一次购买的)
不活跃(流失)客:上月购买这月没有购买
定义分层函数逻辑:
第一步:按月分为初始月和其它
第二步:初始月中按是否消费分为未注册和新客
第三步:其余月先按是否消费分,然后再看上月的用户状态确定本月状态
(4)用户购买周期(按订单)
用户消费周期描述:即是指同一个用户每两次购买之间的间隔时间长度
这里需要使用错位函数shift,函数原型: shift(periods=1, freq=None,axis=0)
参数periods:类型为int,表示移动的幅度,可以是正数,也可以是负数,默认值是1,1就表示移动一次,注意这里移动的都是数据,而索引是不移动的,移动之后没有对应值的,就赋值为NaN。
用户消费周期分布:
(5)用户生命周期(按第一次&最后一次消费)
用户生命周期描述:即是指用户第一次和最后一次消费的时间长度
用户生命周期分布:
7.复购率与回购率
(1)复购率:在同一时期(一般按月统计)内,购买两次及两次以上的用户与总用户的占比。需要先用透视求出用户每月的购买次数,之前有数据框pivot_count,这里要使用函数applymap对每一个数进行变换:把每月没有购买的用户设置为空值,购买一次的设置为0,购买多次的设置为1,那么而购买多次的用户数可以用sum函数求出而总购买用户数使用count函数求出,在求两者的比即是复购率。
(2)回购率:指这个时期(一般按月统计)内购买的用户中,在下一个时期内仍然购买的用户占比。这里需要使用和复购率类似的技巧:把本月购买的用户设置为0,而次月仍然购买的用户则设置为1,没有购买设置为空值。使用简单的if判断比较难解决,需要自定义函数来判断。
到此,大概的分析过程就结束了,剩下的是写分析报告和得出分析结论,即是把之前的每个点的结论综合考虑。在这里再说一下分析的大概步骤:
第一步:获取数据
第二步:清洗数据
第三步:分析数据
第四步:得出结论及分析报告