淘宝用户行为分析(Python)

通过对淘宝用户行为数据的深度分析,发现业务运营问题并提出策略建议。双十二期间,流量、付费率和ARPU大幅上升。用户在工作日18:00-21:00活跃,周四周四付款人数最多。基于RFM模型进行客户分群,识别出高价值、中等价值和低价值客户,提出针对不同群体的营销策略。同时,注意到浏览到收藏/加入购物车的转化率低,需改进用户体验。
摘要由CSDN通过智能技术生成

一、分析背景与目的

 2014年是阿里巴巴集团移动电子商务业务快速发展的一年。例如,2014年11月11日的移动销售中的移动终端商品总销售额(GMV)占总GMV的42.6%。与PC时代相比,移动终端可以随时随地访问网络。此外,他们还拥有更丰富的背景数据,例如用户的位置信息,访问时间的规律性等。该数据基于阿里巴巴M-Commerce平台上的真实用户商品行为数据。同时,它提供了移动时代典型的位置信息。

通过挖掘用户行为数据价值,深度分析,然后可视化展现出来;能够充分发现业务运营中的问题,制定合理的运营策略,优化运营效率,进行精准营销。

二、数据理解

数据来源于阿里天池:(https://tianchi.aliyun.com/dataset/dataDetail?dataId=46&userId=1)
大概有一千多万条,6个特征指标;6个特征代表的含义如下:

字段名 字段描述
user_id 用户ID
item_id 商品ID
behavior_type 行为类型(1:浏览,2:收藏,3:加入购物车,4:下单付款)
user_geohash 用户地理位置
item_category 商品类目
time 行为发生的具体时间

分析思路:
在这里插入图片描述

三、数据清洗

#导入相关的库
import numpy as np
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
import datetime
from datetime import timedelta
import matplotlib.dates as mdates
plt.rcParams['font.sans-serif']=['SimHei']   # 用黑体显示中文
plt.rcParams['axes.unicode_minus']=False     # 正常显示负号

1、读取并查看数据基本信息和数据的完整性

data=pd.read_csv('./tianchi_mobile_recommend_train_user.csv')
data.head()
data.info()

在这里插入图片描述
在这里插入图片描述
time为object类型,后面需将time这一列转化为时间格式

2、缺失值处理

data.isnull().sum()
data.drop(['user_geohash'],axis=1,inplace=True)#这里user_geohash大量缺失不好填充,所以选择删除user_geohash这一特征

在这里插入图片描述

3、增加新特征

#将time这一列数据分割成日期、时间、星期
data.time = pd.to_datetime(data['time'])
data['date']=data['time'].dt.date
data['hour']=data['time'].dt.time
data['week']=data['time'].dt.weekday

#​将行为类型的代表数值用字符表示
di = {
   1:'浏览',2: '收藏',3:'加入购物车',4:'付款'}
data['behavior_type']= data['behavior_type'].apply(lambda x: di[x])
#查看数据基本信息
data.head()
data.info()

在这里插入图片描述
在这里插入图片描述

四、数据分析

1、不同时间维度的PV、UV流量的情况

(1)每天pv、uv变化

date_pv=data.groupby('date').user_id.count()
date_uv=data.groupby('date').user_id.nunique()
plt.style.use('ggplot')
plt.figure(figsize=(15,18), dpi=80)
plt.subplot(611)
plt.plot(date_pv.index, date_pv.values, 'bo-')
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d'))
plt.gca().xaxis.set_major_locator(mdates.DayLocator())    # 按月显示,按日显示的话,将MonthLocator()改成DayLocator()
plt.gcf().autofmt_xdate()  # 自动旋转日期标记
plt.xlabel('2014-xx-xx')
plt.title('一个月内pv变化')
plt.show()

plt.figure(figsize=(15,18), dpi=80)
plt.subplot(612)
plt.plot(date_uv.index, date_uv.values, 'ro-')
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d'))
plt.gca().xaxis.set_major_locator(mdates.DayLocator())    # 按月显示,按日显示的话,将MonthLocator()改成DayLocator()
plt.gcf().autofmt_xdate()  # 自动旋转日期标记
plt.xlabel('2014-xx-xx')
plt.title('一个月内uv变化')
plt.show()

在这里插入图片描述
201411-18到2014-12-18内uv、pv变化平稳趋势大体一致,在2014-12-12pv、uv大幅增长;根据常识可知,是由于双十二淘宝商家大量优惠活动的原因。

(2)一天内pv、uv变化

hour_pv=data.groupby('hour').user_id.count()
hour_uv=data.groupby('hour').user_id.nunique()
plt.figure(figsize=(15,18), dpi=80)
plt.subplot(613)
plt.plot(hour_pv.index, hour_pv.values,  'bo-')
plt.title('一天内pv变化')
plt.show()

plt.figure(figsize=(15,18), dpi=80)
plt.subplot(614)
plt.plot(hour_uv.index, hour_uv.values,  'ro-')
plt.title('一天内uv变化')
plt.show()

在这里插入图片描述
一天中从早上6:00-10:00,18:00-21:00这两个时间段pv有较明显上升;uv从早上6:00-10:00有较明显增加,而后到21点uv保持稳定数量,然后开始下降;pv、uv变化符合大众工作作息时间。

(3)一周内pv、uv变化

week_pv=data.groupby('week').user_id.count()
week_uv=data.groupby('week').user_id.nunique()

plt.figure(figsize=(15,18), dpi=80)
plt.subplot(615)
x=np.arange(7)
plt.plot(week_pv.index, week_pv.values,  'bo-')
plt.title('一周内pv变化')
tick_label=['星期一','星期二','星期三','星期四','星期五','星期六','星期日']
plt.xticks(x,tick_label)
plt.show()

plt.figure(figsize=(15,18), dpi=80)
plt.subplot(616)
x=np.arange(7)
plt.plot(week_uv.index, week_uv.values,  'ro-')
plt.title('一周内uv变化')
tick_label=['星期一','星期二','星期三','星期四','星期五','星期六','星期日']
plt.xticks(x,tick_label)
plt.show()

在这里插入图片描述
一周内周一到周四pv、uv数量增加,周四到周六开始减少,周日有小幅上升;根据客观现实推测可能是周末大家选择计划出去玩等,有较长的可支配自由时间;周四pv,uv数量最高。

2、不同行为在不同时间维度下的pv情况

(1)每天不同行为的pv变化

data_1=data.loc[data['behavior_type'] != '浏览']
plt.style.use('ggplot')

df_date_pv1=pd.pivot_table(data,index=['behavior_type','date'],values=['user_id'],aggfunc='count')
df_date_pv=df_date_pv1.unstack(0)
df_date_pv.plot()
plt.title('一个月内不同行为的pv变化')
plt.show()

df_date_pv1_1=pd.pivot_table(data_1,index=['behavior_type','date'],values=['user_id'],aggfunc='count')
df_date_pv_1=df_date_pv1_1.unstack(0)
df_date_pv_1.plot()
plt.title('一个月内不同行为的pv变化')
plt.show()

在这里插入图片描述
在这里插入图片描述
不同行为每天的pv变化趋势一致,2014-11-12当天的付款人数高于收藏人数许多;说明商家活动有利于促进消费,活动效果好。

(2)不同行为一天内pv变化

df_hour_pv1=pd.pivot_table(data,index=['behavior_type','hour'],values=['user_id'],aggfunc='count')
df_hour_pv=df_hour_pv1.unstack(0)
df_hour_pv.plot()
plt.title('一个天内不同行为的pv变化')
plt.show()
df_hour_pv1_1=pd.pivot_table(data_1,index=['behavior_type','hour'],values=['user_id'],aggfunc='count')
df_hour_pv_1=df_hour_pv1_1.unstack(
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值