淘宝用户行为数据分析

背景

从阿里天池中获取淘宝用户行为数据UserBehavior.csv.zip,数据集下载解压后约9个G。以下是数据的5个特征,其中行为id包括浏览、加购、收藏、购买(pv、cart、fav、buy)

用户id 商品id 类目id 行为id 时间戳
user_id item_id cate_id act_id time

数据集约7千万条数据,选取了10万条数据进行了处理与分析。主要使用pandasmatplotlib

分析目标

通过探索淘宝用户行为,发现可提升的部分,优化营销策略,最终提升GMV。

  • 用户行为分析(pv、uv、cart、buy、dnu、复购率)
  • 漏斗模型的各环节转化率(pv-cart&fav-buy)
  • RFM用户价值模型(最近购买时间、购买次数)
  • TOP商品分析(购买最多,点击最多等)

数据清洗

数据读取

导入numpy、pandas、matplotlib库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

数据地址、列名称准备

# 本地数据地址
path = '/Users/valkyrja/Documents/dataanalysis/taobao.csv'
# 准备列名称
col_na = ['user_id', 'item_id', 'cate_id', 'act_id', 'time']
data = pd.read_csv(path, header = None, names = col_na, encoding = 'utf8')
# 取前10万行数据
data = data.iloc[0:100000, :]
# 概览数据
data.info()

查看空值、数据类型等
索引:0-99999,共10万行数据。
列数:共6列
空值:没有空值
类型:time为字符串类型,需要调整为datetime类型

数据预处理

# 调整时间戳格式
data['time'] = pd.to_datetime(data['time'], unit = 's')
# 查看是否有重复行,因为无空值所以不进行空值的查看
data.duplicated().sum()
data.duplicated().value_counts()
# 两种方法都可以,结果没有重复行,无须去重操作

查重方法

# 新增日期、星期、小时列
data['date'] = pd.to_datetime(data['time'].dt.date)
data['week'] = data['time'].dt.dayofweek
data['hour'] = data['time'].dt.hour
# 概览处理后的数据
data.info()

预处理后概览数据
时间、日期、星期、小时已经完成了调整。

数据分析

总体了解

days = data['date'].max() - data['date'].min()
print('数据横跨{}'.format(days))
print('起始日期{}'.format(data['date'].min()))
print('终止日期{}'.format(data['date'].max()))

数据天数
大致为84天的数据,随着分析我发现这里其实是有问题的,往后看就知道了。

# 观察在这期间共有多少个用户、多少种商品、多少类目
user_item_cate = ['user_id', 'item_id', 'cate_id']
for i in user_item_cate:
    r = data[i].nunique()
    print('去重后共{} {}'.format(r, i))

总体观察数据
总体观察:共983个用户,64467种商品,3128个商品类目。

# 对用户行为进行分类统计数量
p_c_f_b = data['act_id'].value_counts()
print(p_c_f_b)
# 简单作图观察
plt.bar(p_c_f_b.index, p_c_f_b.values, color = 'c')
for a,b in zip(p_c_f_b.index, p_c_f_b.values):
    plt.text(a,b+0.1,'%.0f'%b,ha = 'center',va = 'bottom',fontsize=18)

输出观察

用户行为分类汇总

每日行为数据统计

# 查看每日的pv
daily_data = data[data['act_id'] == 'pv'].groupby(by = ['date'], as_index = False).agg({
   'act_id':'count'
  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值