用户行为分析过程
说明
本次数据分析基于阿里云天池数据集(用户行为数据集),使用转化漏斗,对常见电商分析指标,包括转化率,PV,UV,复购率等进行分析,分析过程中使用Python进行数据的清洗,清洗后的数据导入MySQL数据库,运用MySQL进行数据提取,使用Excel进行数据可视化。
另写了一篇博文,是基于本文入库的数据。在Python环境下,连接MySQL进行取数,并用pyecharts做了一个简单的可视化仪表板。有兴趣的小伙伴,看完本篇博文后,可以移步到:
电商用户行为分析案例–天池数据集User Behavior Data from Taobao(python环境MySQL操作+Pyecharts可视化)
一、数据集
该数据集记录用户在淘宝网站浏览商品产生的行为数据。
二、提出问题
1、整体用户的购物情况
PV(总访问量)、日均访问量、UV(用户总数)、有购买行为的用户数量、用户的购物情况、复购率分别是多少?
2、用户行为转化漏斗
点击-加购物车-收藏-购买各环节转化率如何?购物车遗弃率是多少,如何提高?
3、购买率高和购买率为0的人群有什么特征?
4、基于RFM模型的用户分析
5、商品销售的一些情况
三、数据清洗
数据清洗用Python的pandas处理,效率会高很多。
#导入相关包
import numpy as np
import pandas as pd
import time
#导入原始数据
data=pd.read_csv(r'E:\date\aliyun_taobao\UserBehavior.csv',header=None,index_col=None)
#更新列名
columns=['User_Id','Item_Id','Category_Id','Behavior_type','Timestamp']
data.columns=columns
#观察数据集情况
data.head()
#查询缺失值情况
data.isnull().sum()
#时间戳列有1个缺失值,查看缺失值列
data[data.iloc[:,4].isnull()]
#时间戳缺失值列,用户行为为'P',这个数据也是异常。查看数据集中用户行为种类
data.iloc[:,3].unique()
#用户行为每个种类有多少数据
data.iloc[:,3].value_counts()
#缺失值只有1列,直接删除。并重置索引
data.dropna(axis=0,inplace=True)
data.reset_index(drop=True,inplace=True)
#时间戳列转换为日期、时间数据。并把日期和时间分为两列
data.loc[:,'Timestamp']=data['Timestamp'].apply(lambda x:time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(x)))
data.loc[:,'Date']=data['Timestamp'].apply(lambda x:x.split(' ')[0])
data.loc[:,'Time']=data['Timestamp'].apply(lambda x:x.split(' ')[1])
#把时间戳列删除
data=data.drop(columns='Timestamp',axis=1)
#原始数据日期区间为2017-11-25到2017-12-03,这个时间区间外认为是异常数据。查看一下具体情况
data[data['Date']<'2017-11-25'].shape
data[data['Date']<'2017-11-25']['Date'].value_counts()
data[data['Date']>'2017-12-03'].shape
data[data['Date']>'2017-12-03']
#时间区间外的日期数据剔除
data=data[(data['Date']>='2017-11-25')&(data['Date']<='2017-12-03')]
#查看重复数据
data[data.duplicated()]
#删除重复数据
data.drop_duplicates(inplace=True)
#充值索引
data.reset_index(drop=True,inplace=True)
#数据清洗完成,导出到本地
data.to_csv(r'E:\date\aliyun_taobao\UserBehavior_Done.csv',index=False)
至此,数据清洗完成,把清洗后的数据导入MySQL数据库。
四、数据导入MySQL
-- 建立数据库
create database test;
-- 建立表格
user test;
-- 创建表格
create