淘宝用户行为分析
一、项目背景及目的
项目数据有阿里天池提供,通过python、mysql 和 tableau进行数据分析,根据淘宝用户的行为,挖掘出行为背后的意义,最后提出针对性业务见解。
1、数据来源
https://tianchi.aliyun.com/dataset/dataDetail?dataId=649
2、数据介绍
本数据集包含了2017年11月25日至2017年12月3日之间,有行为的约一百万随机用户的所有行为(行为包括点击、购买、加购、喜欢)。数据集的每一行表示一条用户行为,由用户ID、商品ID、商品类目ID、行为类型和时间戳组成,并以逗号分隔。关于数据集中每一列的详细描述如下:
列名称 | 说明 |
---|---|
用户ID | 整数类型,序列化后的用户ID |
商品ID | 整数类型,序列化后的商品ID |
商品类目ID | 整数类型,序列化后的商品所属类目ID |
行为类型 | 字符串,枚举类型,包括(‘pv’, ‘buy’, ‘cart’, ‘fav’) |
时间戳 | 行为发生的时间戳 |
注意到,用户行为类型共有四种,它们分别是
行为类型 | 说明 |
---|---|
pv | 商品详情页pv,等价于点击 |
buy | 商品购买 |
cart | 将商品加入购物车 |
fav | 收藏商品 |
3、分析目的
根据淘宝用户行为数据,首先从数据的整体情况进行分析,其中包括流量指标和转化情况;其次,从时间维度对用户的行为进行分析;再者,从商品维度来统计商品的浏览量、加购量、收藏量和销售量排行榜;最后,从用户维度构建AARRR模型和RFM模型进行分析。
二、数据清洗
1、选取子集
数据集超过一亿数据,电脑读取超过一千万行数据时出现内存泄漏,因此截取500万数据进行分析
#读取数据
reader=pd.read_csv('UserBehavior.csv',iterator = True,header=None,
names=['UserID','ItemID','CategoryID','Behaviortype','Timestamp'])
try:
tb=reader.get_chunk(5000000)
except StopIteration:
print("Iteration is stopped.")
#查看数据信息
tb.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 4999995 entries, 0 to 4999999
Data columns (total 7 columns):
UserID int64
ItemID int64
CategoryID int64
Behaviortype object
Timestamp int64
date object
time object
dtypes: int64(4), object(3)
memory usage: 305.2+ MB
tb.describe()
UserID ItemID CategoryID Timestamp
count 5.000000e+06 5.000000e+06 5.000000e+06 5.000000e+06
mean 2.446809e+05 2.579267e+06 2.710101e+06 1.511963e+09
std 2.265588e+05 1.488103e+06 1.464218e+06 8.400232e+05
min 1.000000e+00 3.000000e+00 2.171000e+03 4.401600e+04
25% 1.388410e+05 1.294875e+06 1.349561e+06 1.511763e+09
50% 2.010450e+05 2.578621e+06 2.710853e+06 1.511966e+09
75% 2.637270e+05 3.862411e+06 4.145813e+06 1.512181e+09
max 1.018011e+06 5.163067e+06 5.161669e+06 2.122867e+09
查看数据可知,数据集没有缺失值。
2、重复值处理
#查看有多少个重复值
tb.duplicated().sum()
#删除重复值
tb.drop_duplicates(inplace=True)
3、一致化处理
#数据类型转换
tb["date"] = tb["Timestamp"].apply(lambda x: datetime.datetime.fromtimestamp(x).date())
tb[