使用Python对淘宝用户行为进行数据分析

目录1 分析背景与意义2 分析思路3 分析内容3.1 提出问题3.2 理解数据3.3 数据清洗3.3.1 数据导入3.3.2 缺失值分析3.3.3 选取时间范围3.3.4 时间格式处理3.4 构建模型3.4.1 AARRR模型1 分析背景与意义背景:本次报告随机采集了在2017年11月25日至2017年12月3日之间,淘宝用户的行为,其中行为包括浏览、加购物车、收藏、购买等。数据...
摘要由CSDN通过智能技术生成

1 分析背景与意义

淘宝网是中国深受欢迎的网购零售平台,拥有近5亿的注册用户数,每天有超过6000万的固定访客,同时每天的在线商品数已经超过了8亿件,平均每分钟售出4.8万件商品。
用户行为分析则是电商平台的重要事务,通过对用户行为的分析,有助于企业根据用户的行为习惯,找出网站、推广渠道等企业营销环境存在的问题,从而让企业的营销更加精准、有效,提升企业的广告收益。

2 分析思路

针对数据集中的用户、商品、商品种类、用户行为、时间等信息,使用Python对数据进行切片分类汇总等多种数据分析手段,从不同角度挖掘蕴含的价值。本次通过以下四个方向探索淘宝用户行为:
在这里插入图片描述

3 分析内容

3.1 提出问题

本次通过对淘宝用户行为数据分析,期望解决以下业务问题:

1) 用户从浏览到最终购买整个过程的流失情况,确定夹点位置。
2) 找出用户最活跃的日期以及活跃时间段,了解用户的行为时间模式。
3) 找出最具价值的核心付费用户群。
4) 找出最受用户青睐的产品。

3.2 理解数据

数据集:UserBehavior.csv。本次报告随机采集了在2017年11月25日至2017年12月3日之间,淘宝用户的行为,其中行为包括浏览、加购物车、收藏、购买等。数据集主要包含:用户数量约3万(37,376),商品数量约9万(930,607),商品类目数量7106以及总的淘宝用户行为记录数量为3百万(3,835,329)。
数据来源:https://tianchi.aliyun.com/dataset/dataDetail?dataId=649&userId=1
字段含义:

列名称 说明
User ID 整数类型,序列化后的用户ID
Item ID 整数类型,序列化后的商品ID
Category ID 整数类型,序列化后的商品所属类目ID
Behavior type 字符串,枚举类型,包括(‘pv’, ‘buy’, ‘cart’, ‘fav’)
Timestamp 行为发生的时间戳

用户行为类型共有四种,它们分别是:

行为类型 说明
pv 商品详情页pv,等价于点击
buy 商品购买
cart 将商品加入购物车
fav 收藏商品

3.3 数据清洗

3.3.1 数据导入

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

%matplotlib inline
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

path = './data/UserBehavior.csv'
data_user = pd.read_csv(path)
cols = ['UserID', 'ItemID', 'CatogoryID', 'BehaviorType', 'TimeStamps']
data_user.columns = cols
data_user.head()

UserID	ItemID	CatogoryID	BehaviorType	TimeStamps0	1	2333346	2520771	pv	1.511562e+091	1	2576651	149192	pv	1.511573e+092	1	3830808	4181361	pv	1.511593e+093	1	4365585	2520377	pv	1.511596e+094	1	4606018	2735466	pv	1.511616e+09

3.3.2 缺失值分析

data_user.apply(lambda x: sum(x.isnull()))

UserID          0ItemID          0CatogoryID      0BehaviorType    0TimeStamps      1dtype: int64

仅一条数据含有缺失值,删除即可。

3.3.3 选取时间范围

import time

def get_unixtime(timeStr):
    formatStr = "%Y-%m-%d %H:%M:%S"
    tmObject = time.strptime(timeStr, formatStr)
    tmStamp = time.mktime(tmObject)
        
    return int(tmStamp)
    
# 数据集描述的时间范围
startTime = get_unixtime("2017-11-25 00:00:00")
endTime = get_unixtime("2017-12-3 23:59:59")

# 筛选出符合时间范围的数据
data_user['TimeStamps'] = data_user['TimeStamps'].astype('int64')
data_user = data_user.loc[(data_user['TimeStamps'] >= startTime) & (data_user['TimeStamps'] <= endTime)]

3.3.4 时间格式处理

#时间处理
data_user['time'] = data_user['TimeStamps'].apply(lambda t: time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(t)))
data_user['date'] = data_user['time'].str[0:10]
data_user['hour'] = data_user['time'].str[11:13].astype(int)
data_user['date'] = pd.to_datetime(data_user['date'])

data_user.head()

在这里插入图片描述

3.4 构建模型

3.4.1 用户行为转化(AARRR模型)

跳失率计算:
跳失率 = 只浏览一个页面就离开的访问次数 / 该页面的全部访问次数
结果显示只有点击行为没有收藏、加购物车以及购买行为的总用户数是2196,除以总用户数37376得到跳失率为5.88%。说明用户对商品详情页的关注很大,商品详情页的商品描述,细节等吸引点不足,是流失用户的的重要原因之一。具体造成用户在浏览商品详情页后流失的原因,要根据实际情况分析,建议可以采用在线问卷调查的方式get用户的痛点,针对性调整。

日ARPPU计算:
ARPPU全称为Average Revenue Per Paying User,也就是每付费用户平均收益。这个指标考核的是某时间段内平均每个付费用户为应用创造的收入。在用户数量上,ARPPU只考虑某一时间段内的付费用户,而非该时间段内所有的活跃用户。
对于同一时间的同一应用而言,ARPPU的数值会明显高于ARPU。
ARPPU能够反映付费用户为你的应用带来了多少收益,显示出一个忠诚付费用户实际上愿意支付的金额。同时,这个指标也可以显示用户对一些付费项目的反应。

data_user_buy1 = data_user[data_user.BehaviorType == 'buy'].groupby(['date','UserID']).count()['BehaviorType'].reset_index().rename(columns=
  • 11
    点赞
  • 140
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值