上一篇,我们利用mysql分析了淘宝用户行为–利用mysql进行电商数据分析
这次同样的我们利用不同的工具python进行分析。
数据集来源: 阿里云池
样本量: 3835331
import numpy as np
import pandas as pd
df=pd.read_csv('UserBehavior.csv')
df.columns = ['user_id','item_id','category_id','behavior','time_stamp'] #给数据附上列字段名
df.head()
df.info()
df.describe()
df.isnull().sum() #第一步处理空值
df[df['time_stamp'].isnull()]#找到时间戳为空值的一行
df=df.dropna(axis=0,how='any')#直接删去空值
df=df.drop_duplicates()#第二步删去重复值
df.head()
import datetime
import time
df['time_stamp'] = pd.to_datetime(df['time_stamp'],unit = 's') #将格林威治时间转化成日期和时刻
df['date_ymd']=df.time_stamp.dt.date #提取其中日期部分
df['date_time']=df.time_stamp.dt.hour #提取其中小时部分
df['weekday'] = df['time_stamp'].dt.weekday_name #将日期对应的星期数表示出来
del df['time_stamp'] # 删去原有的时间戳列
df.head(5)
df['date_ymd'].value_counts()#看看数据分布,发现基本集中在11月24日-12月03日
df['date_ymd'] = df['date_ymd'][(df['date_ymd']>=datetime.date(2017,11,25)) & (df['date_ymd']<=datetime.date(2017,12,1))]#筛选出11月25日到12月1日这七天的数据
df=df.dropna(axis=0,how='any')#删去范围之外的行数
print(df.shape)#最后7天数据量在278万左右
(2784900, 7)
#正式开始数据分析#
pv=df.groupby(by='behavior').count()#总pv为3433848人次,收藏达到11万,加购的有21万,其中76705的人买了商品
uv=df.drop_duplicates('user_id').count()#独立访客数为37372,
uv
buy = df[df['behavior'] == 'buy']
buy1=buy.drop_duplicates('user_id').count()
buy1['user_id']#付费用户数为25400,
bili=25400/37372 #付费比例为68%
复购用户数及比例
dbuy = buy.groupby(buy['user_id']).count()
dbuy[dbuy['behavior']>=2].count() #复购的用户数为16712
fugoulv=16712/25400 #复购率65.8%
时间维度分析
#时间维度分析#
df['behavior'].groupby(by =df['date_ymd']).value_counts()#用power bi 或EXcel 画图
#用户行为转化漏斗#
df['behavior'].value_counts()
pv_to_cart=153624/2493512
pv_to_fav=80626/2493512
pv_to_buy=57138/2493512
print(pv_to_cart,pv_to_fav,pv_to_buy)#加购率在6.2%,收藏率在3.2%,购买率在2.3%
#所以,关键环节是如何让用户在浏览后迅速喜欢上商品并产生购买意向,应该思考的是个性化推荐是否真的符合用户的购买需求#
加购率0.062,收藏率 0.032,购买率 0.023。