python之数据分析实战练习

浏览: 1641

首先介绍markdown,这是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。在日常分析中可以使用其对分析过程进行解释说明,这样便于以后的复盘。切换用快捷键Esc+m,切回来则用Esc+y。接下来我们需要使用python对一份网上的下载数据进行一个完整的数据分析过程。

1.加载数据

            数据来源网上,是用户在一家CD网站上的消费记录,将近7万条。数据储存格式为TXT,读取则用函数read_table,包含四个字段:用户ID(user_id),购买日期(order_date),购买产品数(order_products),购买金额(order_amount)。

3.1读取数据.png

            一般加载成功后,会使用函数head、tail、count和info对数据进行查看,看看列名是否对应、数量情况、以及数据格式是否正确等。

2.数据清洗

             这里的数据是比较规范的了,没有需要清洗的地方。不过在使用函数info中,注意到order_date列的格式不是日期而是整型,所以使用函数to_datetime需要修改格式。

3.2清洗数据-修改日期格式.png

3.初始分析:描述统计,使用函数describe。

3.3描述统计.png

4.整体分析:按月进行用户消费趋势分析

           首先这里是按月分析,那么就需要增加一个月的字段,使同月下该字段数据相同,可以根据日期衍生,用函数astype。

3.4增加字段month.png

    (1)每月消费总金额:即用求和函数sum

3.4.1每月消费总额.png

         根据结果画出折线图,再画图前得提前加载可视化包并可以显示。这里需要注意的是每种图形所对应的函数。折线图(plot),柱形图(bar),直方图(hist),箱线图(box),密度图(kde),面积图(area),散点图(scatter),饼图(pie)。

3.4.1消费金额.png

    (2)每月的消费次数:即用计数函数count,并画出折线图。

3.4.2消费次数.png

    (3)每月的产品购买量:即对产品数用求和函数sum。

3.4.3每月产品数.png

    (4)每月的消费人数

              这里有两种思路:一种是对月份和ID进行分组,然后在对其计数。

3.4.4消费人数1.png

             另一种是删除重复的行,这里只要month和user_id重复就删除,使用函数drop_duplicates。

3.4.4消费人数2.png

    (5)用户的平均消费金额

3.4.5平均消费金额.png

    (6)用户平均消费次数

3.4.6平均消费次数.png

    5.个体分析:按用户进行个体消费分析

            很显然,这里需要对用户进行分组,用函数groupby。

    (1) 消费金额、消费产品数的描述统计

3.5.1消费金额、产品数的描述统计.png

    (2)用户消费金额和消费产品数的散点图

3.5.2消费金额和产品数散点图.png

           过滤极值可以使用query函数。

3.5.2过滤极值.png

    (3)用户消费金额和产品数的分布图

3.5.3金额和产品数分布图.png

    (4)用户累计消费金额占比

3.5.4用户累计消费占比.png

6.用户消费行为分析

(1)用户第一次消费与最后一次消费分析

           首次消费,也可以说是新客,时间最早的一次消费,即对时间求最小值,这里要使用函数value_counts用来统计每天的新客人数(数据频率)。

3.6.1新客分析.png

            用户最后一次消费,也可以说是流失客,即对消费时间求最大值。

3.6.1流失客分析.png

(2)新老客消费比

            仅消费一次用户占比

3.6.2仅消费一次用户占比.png

           每天新客占比

3.6.2每天新客占比.png

    (3)用户分层

          RFM模型:R(Recency)表示客户购买的时间有多远,F(Frequency)表示客户在时间内购买的次数,M (Monetary)表示客户在时间内购买的金额。

3.6.3 RFM分析模型.png

3.6.3 RFM客户分析.png

                       新客:第一次购买

                       活跃客:连续两月购买

                       回流客:上月没有购买(不包含第一次购买的)

                      不活跃(流失)客:上月购买这月没有购买

3.6.3使用透视得到分层数据.png

        定义分层函数逻辑:

                 第一步:按月分为初始月和其它

                 第二步:初始月中按是否消费分为未注册和新客

                第三步:其余月先按是否消费分,然后再看上月的用户状态确定本月状态

3.6.3定义分层函数.png

3.6.3分层结果.png

    (4)用户购买周期(按订单)

                 用户消费周期描述:即是指同一个用户每两次购买之间的间隔时间长度

                 这里需要使用错位函数shift,函数原型: shift(periods=1, freq=None,axis=0)

                 参数periods:类型为int,表示移动的幅度,可以是正数,也可以是负数,默认值是1,1就表示移动一次,注意这里移动的都是数据,而索引是不移动的,移动之后没有对应值的,就赋值为NaN。

3.6.4购买周期描述.png

             用户消费周期分布:

3.6.4用户购买周期分布.png

    (5)用户生命周期(按第一次&最后一次消费)

                    用户生命周期描述:即是指用户第一次和最后一次消费的时间长度

3.6.5用户生命周期描述.png

                   用户生命周期分布:

3.6.5用户生命周期分布.png

7.复购率与回购率

        (1)复购率:在同一时期(一般按月统计)内,购买两次及两次以上的用户与总用户的占比。需要先用透视求出用户每月的购买次数,之前有数据框pivot_count,这里要使用函数applymap对每一个数进行变换:把每月没有购买的用户设置为空值,购买一次的设置为0,购买多次的设置为1,那么而购买多次的用户数可以用sum函数求出而总购买用户数使用count函数求出,在求两者的比即是复购率。

3.7.1复购率.png

        (2)回购率:指这个时期(一般按月统计)内购买的用户中,在下一个时期内仍然购买的用户占比。这里需要使用和复购率类似的技巧:把本月购买的用户设置为0,而次月仍然购买的用户则设置为1,没有购买设置为空值。使用简单的if判断比较难解决,需要自定义函数来判断。

3.7.2回购率.png

        到此,大概的分析过程就结束了,剩下的是写分析报告和得出分析结论,即是把之前的每个点的结论综合考虑。在这里再说一下分析的大概步骤:

第一步:获取数据

第二步:清洗数据

第三步:分析数据

第四步:得出结论及分析报告

推荐 0
本文由 SJFXDDF 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册