python数据项目分析报告_python数据分析项目:用户消费行为分析

本文通过Python对CDNow网站18个月的消费数据进行深入分析,涉及数据获取、预处理、消费趋势、用户消费能力、用户行为等多个层面。研究发现,消费金额、消费次数在初期上升后下滑,新用户比例下降,大部分用户仅消费一次,用户消费金额呈现正偏态分布。通过RFM模型和KMeans聚类,揭示了用户价值分布和行为特征,为网站运营策略提供了依据。
摘要由CSDN通过智能技术生成

为了创造更多利润、实现数据驱动运营,某CD网站拟对18个月以来的近7万条消费数据进行分析。具体的研究思路如下:

1ba42b89c304

【思维导图】用户消费行为分析(python).png

1、数据获取与探索

1.1数据获取

数据来源:CDNow网站的用户购买明细(不包含隐私信息)。

数据格式:转化成.csv格式。

时间跨度:18个月(199701-199806)。

字段:用户ID,购买日期,购买数量,购买金额四个字段。

user_id:用户ID

order_dt:购买日期

order_products:购买产品数

order_amount:购买金额

1.2数据导入

#导入相关库

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

%matplotlib inline

plt.style.use('ggplot') # 更改设计风格

import seaborn as sns

plt.rcParams['font.sans-serif']=['SimHei'] #用来显示中文标签

df0=pd.read_csv('D:CDNOW_master.csv',names=['user_id','order_dt','order_products','order_amount'],sep='\s+')

df0.head()

#读取csv,此处用的是 names= 而非 columns=

1ba42b89c304

1.PNG

2、数据预处理

2.1数据描述

df0.info()

#使用 .info() 查看数据类型及缺失情况。

1ba42b89c304

2.PNG

2.2数据清洗

缺失值:本次数据,无缺失值,故无需对缺失值处理;

数据类型:购买日期的数据类型是int,为方便后面数据处理,在这先将其转化成datetime格式;

新增['month']列,便于后续按月分析。

df0['order_dt']=pd.to_datetime(df0['order_dt'],format='%Y%m%d')

df0['month']=df0['order_dt'].astype('datetime64[M]')

df0.head()

重新查看,此时的时间列已转换为正常格式。

1ba42b89c304

3.PNG

df0.describe()

#使用 .describe() 查看数据分布及极值情况。

1ba42b89c304

4.png

由上图可知,

order_products列:用户平均每笔订单购买2.4个商品,标准差在2.3,故有一定的波动性。中位数在2个商品,75分位数在3个商品,说明绝大部分订单的购买量都不多。最大值为99,受极值影响。

df0['order_amount'].plot.hist(bins=200)

1ba42b89c304

5.PNG

正偏态分布(也称右偏态分布):频数分布的高峰向左偏移,长尾向右延伸;【峰左移,右偏,正偏 偏度大于0】

负偏态分布(也称左偏态分布):频数分布的高峰向右偏移,长尾向左延伸。【峰右移,左偏,负偏 偏度小于0】

order_amount列:用户的消费金额受极值影响,呈正偏态分布(也称右偏态分布)【中位数50%(25元) < 平均值mean(35元)】

3、数据分析

接下来我们用之前清洗好的字段进行数据分析。

3.1消费趋势分析(按每个月分析)

3.1.1每月的消费总金额

grouped_month=df0.groupby('month') # 按月分组

grouped_month['order_amount'].sum()

1ba42b89c304

6.PNG

grouped_month['order_amount'].sum().plot()

1ba42b89c304

7.PNG

本次数据时间跨度为18个月(199701-199806),消费金额总体描述分析如下:由上图可知,消费金额在前三个月 {1997-01-01:299060.17,1997-02-01:379590.03,1997-03-01:393155.27}增长至峰值,在3-4月出现断崖式下滑,后续消费金额较为平稳,但有轻微下降趋势。原因分析如下:

前3个月的增长,推测是由于CD网站的促销活动;

而3-4月的异常下跌,推测是受促销活动结束的影响较大。同时由于暂缺乏详细数据,所以未对3-4月的异常收入下滑进行实际细剖与分析。收入异常下跌的其他原因整理如下:

比如:

(1)【竞争对手】方面,近期是否出现其他竞争与替代产品;

(2)【渠道】方面,可从用户数量、渠道收入(环比、下滑)两个维度来评判渠道质量,可从查看不同渠道的等数据指标。不同渠道如web端直接访问、搜索引擎渠道、第三方合作渠道等,进一步定位是否是渠道推广有问题;

(3)【用户来源】方面,从新老客构成、流失客户的特征、聚类与分类等角度;

(4)【CD产品体验】方面,针对客户的评价、网站评论及主动与用户沟通收集反馈意见问题,对产品体验进行分析,如是包装不流行、价格没优惠了等等进行优化。

(5)【用户体验流程】方面,通过埋点数据查看流失客户在网站上的行为数据:启动次数、停留时长、流程不畅(如流失客户大部分在支付环节未完成支付,那么就需要回访部分客户、进行优化改进);

3.1.2每月的消费订单数

grouped_month['user_id'].count().plot()

1ba42b89c304

8.PNG

前三个月消费订单数在10000笔左右,后续月份的平均则在2500笔。

3.1.3每月的产品购买量

grouped_month['order_products'].sum().plot()

1ba42b89c304

9.PNG

前三个月产品购买数在20000以上,后续月份的产品购买量在6000~8000左右 。

3.1.4每月的消费人数

grouped_month['user_id'].apply(lambda x:len(x.unique())).plot()

#法二:grouped_month['user_id'].apply(lambda x:len(x.drop_duplicates())).plot()

1ba42b89c304

10.PNG

前三个月每月的消费人数在8000-10000之间,后续月份平均消费人数在2000人不到

3.1.5直接利用数据透视表分析消费金额、消费次数、产品购买量

上述消费趋势的分析可以通过数据透视表分析(不建议数据透视表进行去重操作)

pivot_df0=df0.pivot_table(index='month',values=['order_amount','user_id','order_products'],aggfunc={

'order_amount':'sum',

'user_id':'count',

'order_products':'sum'

})

pivot_df0.head()

#此处是values= 而非columns=

#数据透视表进行去重操作比较麻烦,不建议

1ba42b89c304

11.PNG

pivot_df0.plot()

1ba42b89c304

12.PNG

本章小结——

趋势分析:总体来看,消费总金额、消费次数、产品购买量、消费人数的趋势想似:均先上升、下跌、趋于平稳并下降。

可以看出网站的流失用户在增加,采用开源(拉新)节流(留存)的运营方式,来增加销售收入。

3.2用户个体消费能力分析(按每个用户分析)

上一部分是按月分析,主要看趋势;本部分按用户个体分析,来看消费能力。

3.2.1用户消费金额、消费数量的描述统计

grouped_user=df0.groupby('user_id')

grouped_user.sum().describe()

1ba42b89c304

13.PNG

【order_products数量】用户平均购买了7张CD,但中位数只有3,说明小部分用户购买了大量的CD

【order_amount金额】用户平均消费106元,中位数为43,判断同上,有极值干扰

消费、金融和钱相关的数据,基本上都符合二八法则,小部分的用户占了消费的大头

3.2.2用户消费金额和消费数量的散点图

grouped_user.sum().plot.scatter(x = "order_amount",y = "order_products")

1ba42b89c304

14.PNG

##画图前,用query先筛选:.query("order_amount<4000")【df用query,series不能用】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值