【分析案例】手机产品双十二节日分析python 可视化

本文利用阿里巴巴手机电商平台数据,通过Python进行数据可视化,展示交易在双十二期间的时间趋势变化,包括每天及每小时的交易波动。转化漏斗图分析显示,双十二的转化率显著高于日常,尤其是在加入购物车到支付环节。此外,用户在21、22点的活跃度最高,是广告投放的理想时段。
摘要由CSDN通过智能技术生成


前言

数据为阿里巴巴手机电商平台的交易数据,该数据集有12256906条记录,时间是从2014-11-18到 2014-12-18. 现在拿这个数据练习可视化,展示交易数据在某个时间维度的变化趋势,以及绘制漏斗图查看各流程的转化率。


一、查看数据

1.引入库

先把所需要的库都引入了

import pandas as pd
import numpy as np
import datetime
import time
import matplotlib.pyplot as plt
import seaborn as sns
import sklearn
import pyecharts
from sklearn.preprocessing import LabelEncoder
np.set_printoptions(suppress=True)
pd.set_option('display.float_format', lambda x: '%.4f' % x)

user=pd.read_csv("tianchi_mobile_recommend_train_user.csv")

2.观察数据

阿里天池上的字段解释:

  • user_id:Identity of users
  • item_id:Identity of items
  • behavior_type:The user behavior type.Including click, collect,add-to-cart and payment, the corresponding values are 1, 2, 3 and 4,respectively.
  • user_geohash:Latitude(user location when the behavior occurs,whichmay be null)
  • item_category:The category id of the item
  • time:The time of the behavior.To the nearest hours
user.head(5)

在这里插入图片描述
同时从前五条数据中看到,我们可以对time做一下处理,分开日期和小时。方便之后做一个月内每天的交易数据波动,一天内每小时的交易数据波动。


user.info()

user.isna().sum()

这里结果就不展示了,从上面的几行代码观察到只有user_geohash有空值,有8334824行的空值。但是我们在做分析做可视化中不需要这一个字段。


二、处理数据

1.日期数据

user["date"]=user["time"].apply(lambda x: x.split(" ")[0])

user["date"]=user["date"].apply(lambda x: datetime.datetime.strptime(x,"%Y-%m-%d"))

user["hour"]=user["time"].apply(lambda x: int(x.split(" ")[1]))

user["week"]=user["date"].apply(lambda x: x.isoweekday())

在这里插入图片描述

2.其他数据

behavior_type_dict={
   1:"click",2:"collect",3:"add to cart",4:"paid"}

user["behavior"]=user["behavior_type"].map(behavior_type_dict)

这样做是为了方便之后pivot_table方便统计


三、数据可视化

1.时间趋势变化

1.1 一个月内每天的变化趋势

这里想要提取出月份和日期,不把年份显示出来防止xlabel太长。

user["monthdate"]=user["date"].apply(lambda x:x.strftime("%m%d"))
behviour_date=user.pivot_table(index="behavior",columns="monthdate",values="behavior_type",aggfunc="count")
behviour_date


x_data=behviour_date.columns.to_list()
f, ax = plt.subplots(4,1,figsize=(14, 10),sharex=True)
ax[0].plot(x_data,behviour_date.loc["click",:].tolist(),marker='.')
ax[0].set_title("The change of click number per day"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值