您当前的位置: 首页 >  Python

嗨学编程

暂无认证

  • 0浏览

    0关注

    1405博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

利用Python对淘宝用户行为进行分析

嗨学编程 发布时间:2019-08-06 15:12:23 ,浏览量:0

1. 项目背景

该项目的数据集来源于天池,是由阿里巴巴提供的一个淘宝用户行为数据集,其中包含了2017年11月25日至2017年12月3日之间,一百万个随机用户的所有用户行为(行为包括点击、购买、加购、收藏)数据,有关每个字段的介绍如下所示: image

其中,用户行为类型共有四种,具体的说明见下表: image

2. 明确分析思路和目的

–分析思路:从what、why和how这三个角度对用户行为进行分析,即什么是用户行为分析?为什么进行用户行为分析?如何进行用户行为分析?而其中的why作为我们的重点解释对象。 –分析目的:通过对淘宝用户的点击、加购、收藏、购买行为进行深入研究,让企业或者店铺更好地了解用户行为习惯,为网络营销提供指导意义,也为取得新成绩打下坚实的基础。

2.1 what 什么是用户行为分析?

用户行为分析,可以看做是分析用户行为,而用户行为包括5w2h,即时间、地点、人物、起因、经过、结果和金钱,也就是说分析用户行为则是分析这7个要素产生的数据,基于这些数据进行统计、分析,从中发现用户使用产品的规律,并将这些规律与产品、渠道、价格和促销等相结合,从而发现当前所存在的问题,并为后续进一步改进和优化提供依据,这将有助于企业提高平台转化率,进而提升企业的收益。

2.2 why 为什么进行用户行为分析?

从时间的维度来看,通过对用户行为路径的分析可以帮助企业发现:用户从哪里来?用户做了什么操作?用户从哪里流失的?用户为什么流失? 从空间的维度来看,根据用户的行为特征构建用户画像,进而实现精准营销和提升用户体验,达到提升企业盈利的目的。

2.3 how 如何进行用户行为分析?

此环节正是我们这次项目的重中之重,我们主要通过以下三种模型进行用户行为分析: image

3. 数据概览 3.1 读取数据

数据总容量为1亿多,我这里选择了500万来进行分析.

import pandas as pd
'''
遇到不懂的问题?Python学习交流群:1136201545满足你的需求,资料都已经上传群文件,可以自行下载!
'''
df = pd.read_csv(r'D:\Data\UserBehavior.csv', nrows=5000000, header=None, 
                 names=['用户ID','商品ID','商品类目ID','行为类型','时间戳'])
3.2 查看数据信息
df.info()

RangeIndex: 5000000 entries, 0 to 4999999 Data columns (total 5 columns): 用户ID int64 商品ID int64 商品类目ID int64 行为类型 object 时间戳 int64 dtypes: int64(4), object(1) memory usage: 190.7+ MB 数据维度500万×5,1个字符串类型和4个64位整型数据,500万数据大小190.7MB

3.3 描述性统计
df.describe()
df.describe(include=['O'])

image

由于该数据集中会出现一个用户ID多次浏览的情况,因此这里“用户ID”的count数和max值不代表用户数量,“商品ID“和“商品类目ID“类似 image

用户行为类型分为4种,其中浏览量pv最多,达到4475232次

4. 数据预处理 4.1 重复值处理

对于重复值,直接采用删除的方式处理。

df.drop_duplicates(keep='last',inplace=True)
4.2 缺失值处理

在处理缺失值之前,先查看有多少缺失值

df.isnull().sum()

用户ID 0 商品ID 0 商品类目ID 0 行为类型 0 时间戳 0 dtype: int64 可以看到没有缺失值,因此也就不用处理了

4.3 异常值处理

根据数据介绍,可知道数据的日期包含在2017年11月25日至2017年12月3日之间,因此可根据这条规则对数据进行异常处理

import time
start_time = time.mktime(time.strptime("2017-11-25 00:00:00",'%Y-%m-%d %H:%M:%S'))
end_time = time.mktime(time.strptime("2017-12-03 23:59:59",'%Y-%m-%d %H:%M:%S'))
df = df[(df.时间戳 >=int(start_time)) & (df.时间戳            
关注
打赏
1663681728
查看更多评论
0.2283s