项目实战--用户消费数据分析

本文通过Python和pandas对CDNOW_master.txt数据进行预处理,按月分析用户消费,包括总金额、产品购买数量和消费次数,并进行用户个体消费分析,如消费金额和数量的散点图、直方图。进一步,研究用户消费行为,如首次和最后一次消费的月份分布,新老客户占比,并利用agg函数计算RFM模型,最后探讨用户生命周期,划分用户活跃度。
摘要由CSDN通过智能技术生成


引入包

本项目所用数据为【密码:pfj6】:CDNOW_master.txt

import numpy as np
import pandas as pd
from pandas import DataFrame,Series
import matplotlib.pyplot as plt

# CDNOW_master.txt
# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

一、数据预处理

  • 本阶段需求
    在这里插入图片描述
  • 读取数据集
df = pd.read_csv('./CDNOW_master.txt')
df.head()

在这里插入图片描述

消除列的索引,使用指定索引

# "\s+"则表示匹配任意多个上面的字符 ⭐
df = pd.read_csv('./CDNOW_master.txt',header=None,sep='\s+',names=['user_id','order_dt','order_product','order_amount'])
df.head()

在这里插入图片描述

  • 查看数据类型
df.info()

在这里插入图片描述

  • 将order_dt转换成时间序列
df['order_dt'] = pd.to_datetime(df['order_dt'],format='%Y%m%d')
df.info()

在这里插入图片描述

  • 查看数据的统计描述
df.describe()

在这里插入图片描述

  • 在源数据中添加一列表示月份:astype(datetime64[‘M’])
df['month'] = df['order_dt'].astype('datetime64[M]')
df.head()

在这里插入图片描述

astype的用法:np.astype()

Python中与数据类型相关函数及属性有如下三个:type/dtype/astype

  • type() 返回参数的数据类型
  • dtype 返回数组中元素的数据类型
  • astype() 对数据类型进行转换

二、按月对数据分析

在这里插入图片描述

  • 用户每月花费的总金额
df.groupby(by='month')['order_amount'].sum()

在这里插入图片描述

  • 绘制曲线图
df.groupby(by='month')['order_amount'].sum().plot()

在这里插入图片描述

  • 对上图进行细化
plt.figure(figsize=(8,5)) 
plt.plot(df.groupby(by='month')['order_amount'].sum())
plt.xlabel('order_dt')
plt.ylabel('sum of amount')
plt.title('用户每月花费的总金额')
plt.legend()

在这里插入图片描述

  • 所有用户每月的产品购买数量
df.groupby(by='month')['order_product'
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胜天半月子

打不打商的无所谓,能帮到你就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值