电商用户行为和可视化分析

分析用户行为和可视化展现

利用用户在这个商品子集上的行为数据,往往还需要利用更丰富的用户行为数据。


一、数据源说明

数据来源:
天池:https://tianchi.aliyun.com/competition/entrance/231522/introduction
该机构通过大数据技术帮助商家实现店铺、商品详情、微淘、工作台的千人千面,提升会员运营、流量运营和精准营销的效率;

20000用户的完整行为数据以及百万级的商品信息。竞赛数据包含两个部分。

第一部分是用户在商品全集上的移动端行为数据(D),表名为tianchi_fresh_comp_train_user_2w,包含如下字段:
在这里插入图片描述
第二个部分是商品子集(P),表名为tianchi_fresh_comp_train_item_2w,包含如下字段:
在这里插入图片描述
训练数据包含了抽样出来的一定量用户在一个月时间(11.18~12.18)之内的移动端行为数据(D),评分数据是这些用户在这个一个月之后的一天(12.19)对商品子集(P)的购买数据。使用训练数据建立推荐模型,并输出用户在接下来一天对商品子集购买行为的预测结果。

二、查看数据

1.引入库

代码如下:

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

2.读取数据,并查看数据类型和数据结构

代码如下(示例):

user = pd.read_csv(r'tianchi_fresh_comp_train_user.csv')
user.info()

在这里插入图片描述
1.源数据的数据类型为:DataFrame
2.表格的维度:15463110 行 * 6列,RangeIndex:0 to 15463109
3.表格的列名和列字段类型dtype
4.表格所占空间:707.8M+

Pandas中的info()函数与describe()函数
https://blog.csdn.net/qq_40305043/article/details/104862499
https://blog.csdn.net/Dreamer_rx/article/details/100804378

具体怎么更改类型,可以看我写的这篇文章:
df数据类型转化和说明(astype,apply,object)

3.看表头

user.head()

在这里插入图片描述
用户行为 behavior_type, “1” 表示浏览,“2” 表示收藏,“3” 表示加入购物车,“4” 表示购买

4.统计缺失值

user.isnull().sum()

在这里插入图片描述
user_geohash地理数据不分析 ,这列的缺失值不做处理

三、处理数据

1.删除重复值

user.drop_duplicates(keep='last',inplace=True)

keep:first/last/False, 默认值 ‘first’;

first: 保留第一次出现的重复行,删除后面的重复行。
last: 删除重复项,除了最后一次出现。
False: 删除所有重复项。

inplace:布尔值,默认为False,是否直接在原数据上删除重复项或删除重复项后返回副本。(inplace=True表示直接在原来的DataFrame上删除重复项,而默认值False表示生成一个副本。)

drop_duplicates去重详解

2.将time转换为datetime格式

user['time']=pd.to_datetime(user['time'])

3.提取出日期和时间

user['dates'] = user.time.dt.date
user['month'] = user.dates.values.astype('datetime64[M]')
user['hours'] = user.time.dt.hour

数据分析——可视化

1.统计每日PV和UV数据

pv_day=user[user.behavior_type=="1"].groupby("dates")["behavior_type"].count()
uv_day=user[user.behavior_type=="1"].drop_duplicates(["user_id","dates"]).groupby("dates")["user_id"].count()
print(pv_day)
print(uv_day)

2.分析每天的pv与uv的趋势

# 加载库
import pyecharts.options as opts
from pyecharts.charts import Line
from pyecharts.charts import Grid
import numpy as np

# 做出每天的pv与uv趋势图
attr=list(pv_day.index)
pv=(
    Line(init_opts=opts.InitOpts(width="1000px",height="500px"))
    .add_xaxis(xaxis_data=attr)
    .add_yaxis(
        "pv",
        np.around(pv_day.values/10000,decimals=2),
        label_opts=opts.LabelOpts(is_show=False)
    )
    .add_yaxis(
        series_name="uv",
        yaxis_index=1,
        y_axis=np.around(uv_day.values/10000,decimals
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值