学习记录
数据为2019.10--2020.02期间所有用户在国外某平台上的行为记录(包括浏览、加购、移出购物车与购买),通过对数据进行分析,便于平台进一步利用相关营销活动与措施,获得更高的效益。
可视化更能直观表现出数据隐含的信息。本文章只画图,不做分析。
数据包含event_time (事件时间), event_type (事件类型), product_id (产品id), category_id (产品类别id), brand (品牌), price (价格), user_id (用户id), user_session (用户会话)
其中主要用到: event_time, event_type, price, user_id
UV(访客数)、PV(访问量),UV可以理解为是对用户去重后的PV。这里展示日UV和日PV为例。
# 计算每天的UV
uv_data = data.drop_duplicates(subset = ['event_time','user_id'])
uv_data = uv_data[['event_time','user_id']].groupby(['event_time']).count().reset_index()
uv_data.rename(columns = {'user_id':'日UV'},inplace = True)
uv_data.head()
# 日PV变化
day_pv_data = data[['event_time','user_id']].groupby('event_time').count().reset_index()
day_pv_data.rename(columns = {'user_id':'日PV'},inplace = True)
day_pv_data.head()
画图程序参考自和鲸社区一位博主,向大佬学习。 这个图的好处是底下有拖动条可以拖拽,相当于一个筛选器。电脑出了一点问题,所以不用 jupyter notebook, 转而把图像文件保存为html文件。
因为是化妆品,所以整体色彩结构改为粉色。
客单价:每日总收入 / 每日总用户数
# 计算每日客单价
income_data = data[data['event_type'] == 'purchase'][['event_time','price']].groupby('event_time').sum().reset_index()
customer_data = data[['event_time','user_id']].drop_duplicates(subset = ['event_time','user_id']).groupby('event_time').count().reset_index()
customer_unit_price = pd.merge(income_data,customer_data,how = 'inner',on = 'event_time')
customer_unit_price.rename(columns = {'用户id':'用户数量','价格':'销售额'},inplace = True)
customer_unit_price['客单价'] = customer_unit_price['销售额'] / customer_unit_price['用户数量']
customer_unit_price['客单价'] = customer_unit_price['客单价'].round(2)
customer_unit_price.head()
月复购率:每月有过两次及以上购物行为的用户 / 当月有过购物行为的用户
buy_cus = data[data.event_type == 'purchase'][['event_time','event_time.dt.month','user_id']]
buy_cus = buy_cus.drop_duplicates(subset = ['event_time','user_id'])
buy_count = buy_cus[['event_time.dt.month','user_id']].groupby('event_time.dt.month').count().reset_index()
buy_count.rename(columns = {'用户id':'购买人数'},inplace = True)
rebuy_count = buy_cus.groupby(['月份','用户id']).count().reset_index()
rebuy_count.rename(columns = {'日期':'购买次数'},inplace = True)
rebuy_count = rebuy_count[rebuy_count.购买次数 >= 2][['月份','用户id']].groupby('月份').count().reset_index()
rebuy_count.rename(columns = {'用户id':'复购人数'},inplace = True)
rebuy_rate = pd.merge(buy_count,rebuy_count,how = 'inner',on = '月份')
rebuy_rate['复购率'] = rebuy_rate['复购人数'] / rebuy_rate['购买人数']
rebuy_rate['复购率'] = rebuy_rate['复购率'].round(4)
rebuy_rate['月份'] = rebuy_rate['月份'].astype('str')
rebuy_rate['月份'] = rebuy_rate['月份'] + '月'
rebuy_rate
接下来是销售额与最终转化率,也就是浏览-加购-购买之间的数量关系,先看销售额
接下来是最终转化率
要永远抱着一颗学徒的心,不断学习,不断向前。