利用Python进行用户消费行为分析(CDNOW_master)

此博客通过Python对CDNOW用户消费行为进行分析,包括用户消费趋势(按月消费总金额、次数、商品购买量、人数)、个体消费行为(消费金额与数量的统计和图表分析)以及用户消费行为(首次消费时间、最后消费时间、新老客消费比和用户分层)。通过数据透视表和描述性统计揭示用户购买模式和消费特征。
摘要由CSDN通过智能技术生成

用户消费行为的分析报告

  想必大家对于CD用户消费者行为的分析已经见得多了,这里就不再一一叙述,这里主要是作为我的一个小练习,来提高自己处理业务的能力。

  项目需求如下:

(1)用户消费趋势分析

  • 每月的消费总金额
  • 每月的消费次数
  • 每月的产品购买量
  • 每月的消费人数

(2)用户个体消费行为分析

  • 用户消费金额和消费总数的描述统计
  • 用户消费金额和消费总数的散点图
  • 用户消费金额和消费总数的分布图
  • 用户累计消费金额的占比

(3)用户消费行为分析

  • 用户第一次消费时间(用户首次购买产品的时间)
  • 用户最后一次消费时间
  • 新老客消费占比
  • 用户分层(RFM模型)

获取数据

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
%matplotlib inline
columns = ['user_id','order_dt','order_products','order_amount']
CDNOW = pd.read_table('./CDNOW_master.txt',sep='\s+',names=columns)  # \s+多个空格进行分割,+是空格匹配 

CDNOW.head()
user_id order_dt order_products order_amount
0 1 19970101 1 11.77
1 2 19970112 1 12.00
2 2 19970112 5 77.00
3 3 19970102 2 20.76
4 3 19970330 2 20.76

  数据来源CDNow网站的用户购买明细,主要包括以下几个字段:

  • user_id 用户ID
  • order_dt 购买日期
  • order_products 购买产品数
  • order_amount 购买金额

数据处理

  • 检查数据是否有空值
# CDNOW.info()
CDNOW.isnull().any()
user_id           False
order_dt          False
order_products    False
order_amount      False
dtype: bool

  用CDNOW.info()可以发现order_dt的类型为int型,需要转换为日期类型

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

  添加一列month,方便后面进行分析

CDNOW['month'] = CDNOW['order_dt'].values.astype('datetime64[M]')
CDNOW.head()
user_id order_dt order_products order_amount month
0 14048 1997-02-24 1 11.77 1997-03-01

  查看数据描述

print(CDNOW.mode())
CDNOW.describe()
   user_id   order_dt  order_products  order_amount      month
0    14048 1997-02-24               1         11.77 1997-03-01
user_id order_products order_amount
count 69659.000000 69659.000000 69659.000000
mean 11470.854592 2.410040 35.893648
std 6819.904848 2.333924 36.281942
min 1.000000 1.000000 0.000000
25% 5506.000000 1.000000 14.490000
50% 11410.000000 2.000000 25.980000
75% 17273.000000 3.000000 43.700000
max 23570.000000 99.000000 1286.010000
  • 从用户购买的商品数来看,平均每位用户购买2.4个商品,标准差在2.3左右,证明有一定的偏差,而中位数为2,3/4分位数为3,说明了大多数的订单量都不多,购买商品的最大值为99。(中位数<均值,结合众数可以发现,用户购买的商品数分布是属于右偏分布的,均值>中位数>众数)。
  • 从用户购买的金额来看,每个用户贡献的金额为36,而最大值达到了1286,证明用户的购买金额也是服从长尾分布的,符合二八原则,即20%的用户贡献了80%的交易额。

数据分析

进行用户消费趋势的分析(按月)

  该部分内容主要是从用户每月的消费总金额每月的消费次数每月的产品购买量以及每月的消费人数进行分析。

每月的消费总金额

   按月分组后,对order_amount进行求和,可以得到每月的消费总金额

group_month = CDNOW.groupby('month')  # 按月分组
group_month_amount = group_month['order_amount'].sum()

plt.style.use('ggplot')
group_month_amount.plot()
plt.xlabel('月份')
plt.ylabel('消费金额')
plt.title('每月的消费金额折线图')

在这里插入图片描述

  从上图可以看出,消费金额在1997年的前三个月达到了高峰。其中在3月份,销售额达到了最大值,为393155.27元,之后消费金额呈下降趋势,并不断趋于平稳的状态。

每月的消费次数

   按月分组后,对order_product进行计数,可以得到每月的商品消费次数

group_month_order = group_month['order_products'].count()

group_month_count.plot(color='yellow')
plt.xlabel('月份')
plt.ylabel('消费次数')
plt.title('每月的消费次数')
  • 6
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值