引入包
本项目所用数据为【密码: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'

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

被折叠的 条评论
为什么被折叠?



