用户行为分析(Python)

一、前述

电商、互联网、金融这三驾马车是对数据分析应用最为广泛的行业,同时也占据了就业市场上绝大多数的数据分析岗位,只因日常业务产生的海量数据蕴含着无尽的价值。
本次就通过电商角度,选取阿里天池项目中的淘宝App用户行为数据利用Python进行数据分析。

二、理解需求

1. 明确分析目标及其方向

通过对用户关键行为的埋点获取的日志数据,包含用户、商品、行为、时间等信息,而看似简单的几个维度,通过数据分析手段,便能从不同角度挖掘蕴含的价值。
本次主要通过以下四个方向探索淘宝用户行为:

1.1 用户行为时间模型

PV、UV随时间变化。
留存率模型。

1.2 用户消费行为分析

各周期内消费次数统计。
各行为转化模型。
复购率模型。
回购率模型。

1.3 用户价值分析

RFM模型。
各价值类别用户分布、购买力等。

1.4 商品分析

商品和行为关系。
TOP商品分析。

三、理解数据

数据中包含了淘宝App由2019年11月28日至2019年12月3日之间,有行为的随机用户的所有行为(行为包括点击、购买、加购、收藏)。由user_id(用户ID)、goods_id (商品ID)、cat(商品类目ID)、behavior(行为类型)、time(时间戳)、sex(性别)、addr(城市)、device(访问设备)、price(商品单价)、amount(商品销量)组成,并以逗号分隔。

1.数据处理

在这里插入图片描述
源数据如图

1.1 数据信息

******************** 基本信息
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 757565 entries, 0 to 757564
Data columns (total 10 columns):
user_id     757565 non-null int64
goods_id    757565 non-null int64
cat         757565 non-null int64
behavior    757565 non-null object
time        757565 non-null int64
sex         757565 non-null int64
addr        757565 non-null object
device      757565 non-null object
price       757565 non-null float64
amount      757565 non-null int64
dtypes: float64(1), int64(6), object(3)
memory usage: 57.8+ MB
None
******************** 空值
user_id     0
goods_id    0
cat         0
behavior    0
time        0
sex         0
addr        0
device      0
price       0
amount      0
dtype: int64
******************** 行为项
pv      679668
cart     42714
fav      20601
buy      14582
Name: behavior, dtype: int64
******************** 重复值
False    757565
dtype: int64

数据很干净,只是有些数据类型需要转换,之后随用随改吧。

1.2 添加时间相关列

df["time"]=df["time"].apply(lambda x:datetime.datetime.fromtimestamp(x))
df['date'] = df['time'].dt.date
df['week'] = df['time'].dt.dayofweek+1
df['hour'] = df['time'].dt.hour

在这里插入图片描述

四、数据分析及可视化

1. 用户行为时间模型

1.1 pv uv每日变化趋势

pv、uv 按天分析,观察其访问走势

puv_pivot = pd.pivot_table(df, index=['date'], values=['user_id'], aggfunc='count')
uv = df[['user_id','date']].drop_duplicates()['date'].value_counts()
puv_pivot = puv_pivot.join(uv)
puv_pivot.columns = ['pv','uv']
puv_pivot['avg_pv'] = puv_pivot['pv']/puv_pivot['uv']

在这里插入图片描述

grid = Grid()
bar = Bar()
grid.theme = ThemeType.PURPLE_PASSION
line = Line()
line.add_xaxis([str(i)[:10] for i in puv_pivot.index.tolist()])
line.add_yaxis("pv", puv_pivot["pv"].tolist(), label_opts=opts.LabelOpts(is_show=False))
line.extend_axis(yaxis=opts.AxisOpts(type_="value",name="uv人数",position="right", axislabel_opts=opts.LabelOpts(formatter="{value}")))
line.set_global_opts(yaxis_opts=opts.AxisOpts(
                                            name="pv人数",
                                            type_="value",
                                            axislabel_opts=opts.LabelOpts(formatter="{value}")
                                            ), 
                    xaxis_opts=opts.AxisOpts(name="",axislabel_opts={
   "rotate":45}), 
                    title_opts=opts.TitleOpts("pv uv 变化趋势"),
                    tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="cross"),
                   ) # 交叉指向工具
line.add_xaxis([str(i)[:10] for i in puv_pivot.index.tolist()])
line.add_yaxis("uv", puv_pivot["uv"],yaxis_index = 1,label_opts=opts.LabelOpts(is_show=False))
line.render_notebook()

在这里插入图片描述
可以发现,PV与UV的每日变化趋势大致相同:工作日维持在低值,12月2日PV与UV有较大幅度地提升,检索可知正值“双十二”前夕,各类预热活动促进用户访问增长。

1.2 各行为变化

behavior_pivot = pd.pivot_table(df,index='date',columns='behavior',values='user_id',aggfunc='count')

在这里插入图片描述
构图方式同 pv uv每日变化趋势 ,这里只展示可视化结果
在这里插入图片描述
由于浏览量与其他行为不在同一个量级,故将浏览量置于次坐标轴展示。从变化趋势来看,12月第一天迎来了各类行为的峰值。

1.3 各时段访问量

gp_hour = df.groupby('hour')['user_id'].count()
line = (
        Line()
        .add_xaxis(gp_hour.index.tolist())
        .add_yaxis("访问量", gp_hour.values.tolist(),label_opts=opts.LabelOpts(is_show=False))
        .set_global_opts(
            title_opts=opts.TitleOpts(title="各时段访问量"),
            tooltip_opts=opts.TooltipOpts
  • 4
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
用户行为分析是通过分析用户在特定平上的行为数据,了解用户偏好、需求和行为模式,并基于此进行业务优化和决策制定的过程。下面是一些常用的Python工具和方法来进行用户行为分析: 1. 数据收集:使用Python编写爬虫程序或者API调用,从网站、移动应用等渠道收集用户行为数据。 2. 数据清洗和预处理:使用Python的数据处理库(如Pandas)对收集到的数据进行清洗、去重、筛选等预处理操作。 3. 特征提取:根据具体需求,利用Python进行特征提取。例如,从用户行为数据中提取出关键指标,如浏览次数、购买次数、停留时长等。 4. 数据可视化:使用Python的可视化库(如Matplotlib、Seaborn)将用户行为数据可视化,以便更直观地展示和理解数据。 5. 行为分析:通过Python编写算法或使用机器学习库(如Scikit-learn)进行用户行为分析。例如,使用聚类算法对用户进行分群,使用关联规则挖掘用户行为的关联性等。 6. 预测和建模:利用Python的机器学习库(如TensorFlow、PyTorch)构建模型,对用户行为进行预测和建模。例如,使用分类模型预测用户的购买意愿,使用推荐算法为用户提供个性化推荐等。 需要根据具体的业务需求和数据情况选择合适的方法和工具。同时,还需要注意数据隐私和合规性问题,在进行用户行为分析时要遵守相关法规和规定。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值