python编写文本编辑器数据分析_python之数据分析实战练习

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

1.加载数据

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

c4586f73d0afad3ab4aa336f9abaaf9e.png

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

2.数据清洗

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

e15d83800779178b77a44af2ab519cd1.png

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

c17386c6a88a287b5bd805c0f328a205.png

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

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

e2afe3fd79f27f875f58b2e4fd798b68.png

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

ee6680186907e601cbf2729b061d9877.png

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

21971b9d716ffa8addb23b79cebc4435.png

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

0befd9d3363652069407206b3ad37da1.png

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

f11fbc76fdcb46b54fc13443ed2a6a80.png

(4)每月的消费人数

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

2a3a5f1d3cc3c4fed13a806daa857440.png

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

0ee9c7683f28c191bacfafab7a5e7c92.png

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

6b68e2a5c7a6b04518dd148508ede62d.png

(6)用户平均消费次数

0609b98cfe747bfe946f8b43f2e5e18c.png

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

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

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

6ff4f1d8dd501c4c90fb43c72fb52fdc.png

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

68dc46183c3941c46b354c7015106394.png

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

c7d585c013c8fd4e6d8fbc77c7aeb353.png

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

b8f2fa7f49e49d0380b58f5259bd2130.png

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

ce77de538defaad674fbd69eaf784750.png

6.用户消费行为分析

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

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

e80a7783422cdae9e380482807d65d81.png

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

58138b20005c32e5f6307faf2f6fbeca.png

(2)新老客消费比

仅消费一次用户占比

d6060d68be9d5fe90182bea537ff2bae.png

每天新客占比

ece844eaeeab272367d7ce3af582d741.png

(3)用户分层

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

af1dbfa2aae80008c46a0f5d12ec0121.png

883bcc0a846d28a810db54ff9bac4710.png

新客:第一次购买

活跃客:连续两月购买

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

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

03d695f99582e8379dcce35414e9bf85.png

定义分层函数逻辑:

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

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

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

9f2996498a45b84ed3417149a22a4405.png

a3dad32dd69edee13d40e5bbdb3d8222.png

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

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

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

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

4c2ff72214e54756a6a924caf77469bf.png

用户消费周期分布:

a00bf5a6127ed91b90678d200a81971b.png

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

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

0b8096af0a26156061dc97420e36a0a2.png

用户生命周期分布:

bfbbf10d3b246a1669ec99f7fac6e3ee.png

7.复购率与回购率

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

9a9576cbde8d59852afd638e88abf138.png

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

7885dfd762d5046f24d303f165c9d462.png

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

第一步:获取数据

第二步:清洗数据

第三步:分析数据

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值