赞
踩
基于双十一淘宝美妆数据分析双十一期间各品牌化妆品的销售情况及打折情况,并分析个品牌化妆品的打折特点,分析其套路。
1、从双十一淘宝美妆数据,分析出“各个品牌都有多少商品参加了双十一活动?”
要求:
① 计算得到:商品总数、品牌总数
② 双十一当天在售的商品占比情况
③ 真正参与双十一活动的品牌有哪些?其各个品牌参与双十一活动的商品数量分布是怎样的?
2、哪些商品真的在打折呢?
要求:
① 针对每个商品,评估其打折的情况
② 针对在打折的商品,其折扣率是多少
③ 按照品牌分析,不同品牌的打折力度
3、商家营销套路挖掘?
要求:
① 解析出不同品牌的参与打折商品比例及折扣力度,并做散点图,总结打折套路
1.”双十一淘宝美妆数据”是各个品牌在11/5~11/14期间每天在售的商品及价格情况,各个商品在双十一及其前后的有以下几种情况:
A. 11.11前后及当天都在售 → 一直在售
B. 11.11之后停止销售 → 双十一后停止销售
C. 11.11开始销售并当天不停止 → 双十一当天上架并持续在售
D. 11.11开始销售且当天停止 → 仅双十一当天有售
E. 11.5 - 11.10 → 双十一前停止销售
F. 仅11.11当天停止销售 → 仅双十一当天停止销售
G. 11.12开始销售 → 双十一后上架
根据每种商品的销售情况将商品分类,追加类别字段,然后可以根据要求分组统计商品总数,品牌总数,双十一当天商品数量,以及
每个销售类别的商品的数量,绘制饼图来查看各个类别商品数量的分布情况。
真正参与双十一活动的商品:双十一当天在售的商品 + 预售商品,可以分别计算每个品牌的双十一在售和预售商品,绘制柱状堆叠图。
2.分析商品的打折情况和折扣率可以首先判断是否有打折,然后计算折扣率 = 双十一当天价格 / 双十一之前价格,
将数据分为’双11之前’,’双11’,’双11之后’三个时间段,根据不同时间段的价格波动情况,判断商品打折情况,然后计算每个商品的打折率,
分析打折情况和力度可以分析不同的折扣区间的商品数量,绘制折线图,看不同折扣区间的商品折扣数量变化情况;
按品牌分析可以绘制散点图,看不同品牌商品的折扣分布情况,这里可以使用bokeh来实现,设置十字线和标签显示。
3.最后分析电商打折套路,实际上是分析各个品牌电商参与打折商品的数量以及折扣情况的特点,这里可以划分为四个特征:
a.少量商品少打折
b.少量商品大打折
c.大量商品少打折
d.大量商品大打折
因此可以绘制散点图,将图形根据均值划分为四个对应象限,就可以清楚直观的得到各个品牌的打折套路了
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings('ignore')
# 不发出警告
from bokeh.io import output_notebook
output_notebook()
# 导入notebook绘图模块
from bokeh.plotting import figure,show
from bokeh.models import ColumnDataSource
# 导入图表绘制、图标展示模块
# 导入ColumnDataSource模块
data = pd.read_excel(r'D:\IT\python数据分析师\项目8\双十一淘宝美妆数据.xlsx')
#读取淘宝美妆excel表格数据
data['date'] = data['update_time'].apply(lambda x:x.day) #获取update_time的day,生成单独列
commodity_ttl = data[['id']].drop_duplicates().count() #商品总数
brand_ttl = data[['店名']].drop_duplicates().count() #品牌总数
commodity_on11 = data.loc[data['date']==11,['id']].drop_duplicates().count() #双11在售商品数量
print('商品总数为:%i' % commodity_ttl)
print('品牌总数为:%i' % brand_ttl)
print('双十一当天在售商品占比情况: %.2f' % (commodity_on11/commodity_ttl)) #打印双11在售的商品占比情况
data1 = data.groupby('id')['date'].agg({
'min':np.min,'max':np.max})
data2 = data[data['date']==11][['id','date']].set_index('id').rename(columns = {
'date':'date_11'})
data1 = data1.join(data2).fillna(0)
data1.loc[((data1['min']<11)&(data1['max']>11)&(data1['date_11']==11)),'class']='A'
data1.loc[((data1['min']<11)&(data1['max']==11)),'class']='B'
data1.loc[((data1['min']==11)&(data1['max']>11)),'class']='C'
data1.loc[((data1['min']==11)&(data1['max']==11)),'class']='D'
data1.loc[((data1['min']<11)&(data1['max']<11)),'class']='E'
data1.loc[((data1['min']<11)&(data1['max']>11)&(data1[

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。