(电商)唯品会双十一促销活动复盘——数据分析
项目背景:
唯品会是一个专门做特卖的网站,什么是特卖呢。特卖一般是指在特定的时间段里,以优惠的价格出售指定的商品,一般以商城或者专卖店为多。该模式在线下早已存在(比如商场促销、街边的尾货甩卖),在国外成熟的大商场内也有针对滞销商品的打折特卖,如奥特莱斯。特卖一般是商家清库存,不过也有一些专门生产商品做特卖的商家。
特卖行业也是有个真实存在的产业链,只是因为快速分销渠道,地理位置等关系,大多数都集中在一线城市,部分生活在一线城市的都基本或多或少去过几次各个品牌的特卖仓,但是二三线甚至四五线城市的就比较难接触到,后来就有一群人成了品牌搬运工,和各大品牌联系通过微信等渠道快速分销大牌库存,达到快速低价消除库存,加快周转回笼资金等目的。
在货源上,由于品牌尾货具备天然的清仓需求,是折扣零售最常见的货源,但实际上,只要成本足够低,新品首发、定制包销、自有品牌均可以成为折扣特卖零售的可持续货源。成立初期,唯品会货源以尾货为主,但随着唯品会在电商领域的不断发展,新品和专供品的占比不断提升,早在 2016 年 Q2 分析中,唯品会当季新品和平台特供品就已经占 37%了。
此次分析的目标:
评估每次促销活动的结果,并根据情况优化商品结构,以便让自己的商品卖的更好。
分析流程:
- 1、总体运营指标
- 2、从价格区间找出表现不好的产品,优化商品结构
- 3、从折扣区间来找出表现不好的产品,优化商品结构
import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings('ignore')
〇、数据清洗与准备
1、读取数据,更改列名
import sqlalchemy
engine = sqlalchemy.create_engine('mysql+pymysql://ID:PASSWORD@localhost:3306/datdabase')
# 读取数据
# 商品信息表
sql_cmd = "select * from sales_info1"
# 执行sql语句,获取数据
dt= pd.read_sql(sql=sql_cmd, con=engine)
dt.rename(columns={"sale_name":"商品名",
"sale_price":"售卖价",
"tag_price":"吊牌价",
"discout":"折扣率",
"stocks":"库存量",
"stocks_value":"货值",
"cost_price":"成本价",
"profit_rate":"利润率",
"skus":"SKU"},
inplace=True)
dt.head()
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | |
0 | A001 | 15 | 70 | 0.214286 | 501 | 35070 | 14 | 0.066667 | 2 |
1 | A002 | 236 | 610 | 0.386885 | 423 | 258030 | 75 | 0.682203 | 1 |
2 | A003 | 473 | 1253 | 0.377494 | 415 | 519995 | 394 | 0.167019 | 1 |
3 | A004 | 320 | 835 | 0.383234 | 624 | 521040 | 279 | 0.128125 | 2 |
4 | A005 | 15 | 82 | 0.182927 | 179 | 14678 | 27 | -0.800000 | 1 |
# 读取数据
# 商品热度表
sql_cmd = "select * from sales_info2"
# 执行sql语句,获取数据
dt2 = pd.read_sql(sql=sql_cmd, con=engine)
dt2.rename(columns={"sale_name":"商品名",
"uvs":"UV数",
"collections":"收藏数",
"carts":"加购物车数"},
inplace=True)
dt2.head()
商品名 | UV数 | 收藏数 | 加购物车数 | |
0 | A001 | 10926 | 48 | 372 |
1 | A002 | 13124 | 84 | 193 |
2 | A003 | 25657 | 45 | 173 |
3 | A004 | 20833 | 5 | 273 |
4 | A005 | 19371 | 71 | 356 |
# 读取数据
# 用户销售明细表
sql_cmd = "select * from sales_info3"
# 执行sql语句,获取数据
dt3 = pd.read_sql(sql=sql_cmd, con=engine)
dt3.rename(columns={"user_id":"用户id",
"buy_date":"购买日期",
"sale_name":"商品名",
"buy_cons":"购买数量",
"buy_price":"购买单价",
"cost_price":"购买金额",
"is_tui":"是否退货",
"tui_cons":"退货件数",
"tui_price":"退货金额"},
inplace=True)
dt3['是否退货']=dt3["是否退货"].map({"是":1,"否":0})
dt3.head()
用户id | 购买日期 | 商品名 | 购买数量 | 购买单价 | 购买金额 | 是否退货 | 退货件数 | 退货金额 | |
0 | 1 | 20191111 | F001 | 1 | 920.0 | 920.0 | 1 | 1 | 920.0 |
1 | 2 | 20191111 | B007 | 2 | 548.0 | 1096.0 | 0 | 0 | 0.0 |
2 | 2 | 20191111 | E007 | 1 | 930.0 | 930.0 | 1 | 1 | 930.0 |
3 | 3 | 20191111 | A004 | 2 | 320.0 | 640.0 | 1 | 2 | 640.0 |
4 | 3 | 20191111 | H007 | 2 | 750.0 | 1500.0 | 0 | 0 | 0.0 |
2、合并商品信息表和商品热度表数据
# 把商品信息加上该商品的热度信息
# 得到基础的商品信息,以及商品的一些热度信息:加购物车数量,收藏数量、uv数
dt_products=pd.merge(dt1,dt2,how='left',on='商品名')
dt_products.head()
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | 收藏数 | 加购物车数 | |
0 | A001 | 15 | 70 | 0.214286 | 501 | 35070 | 14 | 0.066667 | 2 | 10926 | 48 | 372 |
1 | A002 | 236 | 610 | 0.386885 | 423 | 258030 | 75 | 0.682203 | 1 | 13124 | 84 | 193 |
2 | A003 | 473 | 1253 | 0.377494 | 415 | 519995 | 394 | 0.167019 | 1 | 25657 | 45 | 173 |
3 | A004 | 320 | 835 | 0.383234 | 624 | 521040 | 279 | 0.128125 | 2 | 20833 | 5 | 273 |
4 | A005 | 15 | 82 | 0.182927 | 179 | 14678 | 27 | -0.800000 | 1 | 19371 | 71 | 356 |
3、合并商品信息表和商品热度表数据和用户销售明细表
dt3.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8036 entries, 0 to 8035
Data columns (total 9 columns):
用户id 8036 non-null object
购买日期 8036 non-null int64
商品名 8036 non-null object
购买数量 8036 non-null int64
购买单价 8036 non-null float64
购买金额 8036 non-null float64
是否退货 8036 non-null int64
退货件数 8036 non-null int64
退货金额 8036 non-null float64
dtypes: float64(3), int64(4), object(2)
memory usage: 565.2+ KB
# 统计每个商品的一个销售情况
product_sales=dt3.groupby('商品名').agg({'购买数量':sum,
'购买金额':sum,
'退货件数':sum,
'退货金额':sum,
'购买单价':np.mean,
'用户id':pd.Series.nunique}).reset_index()
product_sales.rename(columns={'购买数量':'商品销售数量',
'购买金额':'商品销售金额',
'是否退货':'商品退货数量',
'退货金额':'商品退货金额',
'购买单价':'商品销售单价',
'用户id':'购买用户数量'},inplace=True)
product_sales.head()
商品名 | 商品销售数量 | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | |
0 | A001 | 185 | 2775.0 | 59 | 885.0 | 15.0 | 116 |
1 | A002 | 146 | 34456.0 | 31 | 7316.0 | 236.0 | 87 |
2 | A003 | 144 | 68112.0 | 31 | 14663.0 | 473.0 | 94 |
3 | A004 | 172 | 55040.0 | 56 | 17920.0 | 320.0 | 111 |
4 | A005 | 122 | 1830.0 | 32 | 480.0 | 15.0 | 81 |
# 合并商品信息
dt_product_sales=pd.merge(dt_products,product_sales,how='left',on='商品名')
dt_product_sales.head()
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | 收藏数 | 加购物车数 | 商品销售数量 | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | |
0 | A001 | 15 | 70 | 0.214286 | 501 | 35070 | 14 | 0.066667 | 2 | 10926 | 48 | 372 | 185 | 2775.0 | 59 | 885.0 | 15.0 | 116 |
1 | A002 | 236 | 610 | 0.386885 | 423 | 258030 | 75 | 0.682203 | 1 | 13124 | 84 | 193 | 146 | 34456.0 | 31 | 7316.0 | 236.0 | 87 |
2 | A003 | 473 | 1253 | 0.377494 | 415 | 519995 | 394 | 0.167019 | 1 | 25657 | 45 | 173 | 144 | 68112.0 | 31 | 14663.0 | 473.0 | 94 |
3 | A004 | 320 | 835 | 0.383234 | 624 | 521040 | 279 | 0.128125 | 2 | 20833 | 5 | 273 | 172 | 55040.0 | 56 | 17920.0 | 320.0 | 111 |
4 | A005 | 15 | 82 | 0.182927 | 179 | 14678 | 27 | -0.800000 | 1 | 19371 | 71 | 356 | 122 | 1830.0 | 32 | 480.0 | 15.0 | 81 |
一、总体运营情况评价
总体运营部分,主要关注销售额、售卖比、UV、转化率等指标,其他指标作为辅助指标。销售额用来和预期目标做对比,售卖比用来看商品流转情况。
- GMV:销售额,在唯品会里称为到手价。
- 实销:GMV – 拒退金额。
- 销量:累计销售量(含拒退)。
- 客单价:GMV / 客户数,客单价与毛利率息息相关,一般客单价越高,毛利率越高。
- UV:商品所在页面的独立访问数。
- 转化率:客户数 / UV。
- 折扣率:GMV / 吊牌总额(吊牌总额 = 吊牌价 * 销量),在日常工作中,吊牌额是必不可少的。
- 备货值:吊牌价 * 库存数。
- 售卖比:又称售罄率,GMV / 备货值。
- 收藏数:收藏某款商品的用户数量。
- 加购数:加购物车人数。
- SKU数:促销活动中的SKU计数(一般指货号)。
- SPU数:促销活动中的SPU计数(一般指款号)。
- 拒退量:拒收和退货的总数量。
- 拒退额:拒收和退货的总金额。
#1、GMV:销售额,包含退货的金额
GMV=dt_product_sales.商品销售金额.sum()
GMV
3747167.0
#2、实际销售额=GMV - 退货金额
ruturn_sales=dt_product_sales.商品退货金额.sum()
实际销售额=GMV-ruturn_sales
实际销售额
2607587.0
#3、销量:累计销售量(含拒退)
销量=dt_product_sales.商品销售数量.sum()
销量
12017
#4、客单价:GMV / 客户数,客单价与毛利率息息相关,一般客单价越高,毛利率越高。
# dt3.user_id.unique().count()
客单价=GMV/dt_product_sales.购买用户数量.sum()
客单价
493.56783456269756
# 5、UV:商品所在页面的独立访问数
UV=dt_product_sales.UV数.sum()
UV
1176103
# 6、转化率:客户数 / UV。
转化率 = dt_product_sales.购买用户数量.sum()/UV
转化率
0.006455216932530569
# 7、折扣率:GMV / 吊牌总额(吊牌总额 = 吊牌价 * 销量),在日常工作中,吊牌额是必不可少的。
吊牌总额=(dt_product_sales.吊牌价*dt_product_sales.商品销售数量).sum()
折扣率=GMV/吊牌总额
折扣率
0.4179229541452886
# 8、备货值:吊牌价 * 库存数。
备货值=(dt_product_sales.吊牌价*dt_product_sales.库存量).sum()
备货值
18916395
# 9、售卖比:又称售罄率,GMV / 备货值。
售卖比=GMV/备货值
售卖比
0.19809096817866195
# 10、收藏数:收藏某款商品的用户数量。
收藏数=dt_product_sales.收藏数.sum()
收藏数
6224
# 11、加购数:加购物车人数。
加购数=dt_product_sales.加购物车数.sum()
加购数
18690
# 12、SKU数:促销活动中的最小品类单元(一般指货号)。
SKU数=dt_product_sales.SKU.sum()
SKU数
125
# 13、SPU数:促销活动中的SPU计数(一般指款号)。
SPU数=dt_product_sales.商品名.nunique()
SPU数
80
# 14、拒退量:拒收和退货的总数量。退货件数
拒退量=dt_product_sales.退货件数.sum()
拒退量
3643
# 15、拒退额:拒收和退货的总金额。
拒退额=dt_product_sales.商品退货金额.sum()
拒退额
1139580.0
# 汇总统计
# 汇总统计
sales_state_thisyear = pd.DataFrame(
{"GMV":[GMV],"实际销售额":[实际销售额],"销量":[销量],"客单价":[客单价],
"UV数":[UV],"UV转化率":[转化率],"折扣率":[折扣率],"货值":[备货值],
"售卖比":[售卖比],"收藏数":[收藏数],"加购数":[加购数],"sku数":[SKU数],
"spu数":[SPU数],"拒退量":[拒退量],"拒退额":[拒退额]},
) #index=["今年双11",]
sales_state_thisyear
# 去年的数据
sales_state_lastyear = pd.DataFrame(
{"GMV":[2261093],"实际销售额":[1464936.517],"销量":[7654],"客单价":[609.34567],
"UV数":[904694,],"UV转化率":[0.0053366,],"折扣率":[0.46,],"货值":[12610930],
"售卖比":[0.1161],"收藏数":[4263],"加购数":[15838],"sku数":[82],
"spu数":[67],"拒退量":[2000],"拒退额":[651188.57]}
) #index=["去年双11",]
#sales_state = pd.concat([sales_state_thisyear, sales_state_lastyear])
sales_state_thisyear_s = pd.DataFrame(sales_state_thisyear.stack()).reset_index().iloc[:,[1,2]]
sales_state_thisyear_s.columns = ["指标","今年双11"]
sales_state_lastyear_s = pd.DataFrame(sales_state_lastyear.stack()).reset_index().iloc[:,[1,2]]
sales_state_lastyear_s.columns = ["指标","去年双11"]
sales_state = pd.merge(sales_state_thisyear_s, sales_state_lastyear_s,on="指标")
sales_state["同比"] = (sales_state["今年双11"] - sales_state["去年双11"]) / sales_state["去年双11"]
pd.set_option('display.float_format',lambda x : '%f' % x) #禁用科学技数法
sales_state
指标 | 今年双11 | 去年双11 | 同比 | |
0 | GMV | 3747167.000000 | 2261093.000000 | 0.657237 |
1 | 实际销售额 | 2607587.000000 | 1464936.517000 | 0.780000 |
2 | 销量 | 12017.000000 | 7654.000000 | 0.570029 |
3 | 客单价 | 493.567835 | 609.345670 | -0.190004 |
4 | UV数 | 1176103.000000 | 904694.000000 | 0.300001 |
5 | UV转化率 | 0.006455 | 0.005337 | 0.209612 |
6 | 折扣率 | 0.417923 | 0.460000 | -0.091472 |
7 | 货值 | 18916395.000000 | 12610930.000000 | 0.500000 |
8 | 售卖比 | 0.198091 | 0.116100 | 0.706210 |
9 | 收藏数 | 6224.000000 | 4263.000000 | 0.460005 |
10 | 加购数 | 18690.000000 | 15838.000000 | 0.180073 |
11 | sku数 | 125.000000 | 82.000000 | 0.524390 |
12 | spu数 | 80.000000 | 67.000000 | 0.194030 |
13 | 拒退量 | 3643.000000 | 2000.000000 | 0.821500 |
14 | 拒退额 | 1139580.000000 | 651188.570000 | 0.750000 |
二、从价格区间来优化商品结构
我们需要做的是,深入探究不同区间的数据,以此来优化后期的促销结构。首先我们需要找到在本次促销中此区间的销售源数据,源数据要求显示具体的款号、销售额、销量等信息。第二步,计算出每个款的转化率、折扣率等数据。
查看指标:
- 销售额
- 销量
- 件单价
- 客户数
- UV
- 转换率
- 库存
- 货值
- 售卖比
# 划分价格区间段
#设置切分区域
listbins=[0,200,400,100000]
#设置切分后对应标签
list_labels=['1-200','200-400','400以上']
#利用pd.cut进行数据离散化切分,注意分组标签和分组数要一致
"""
pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False)
x:需要切分的数据
bins:切分区域
right : 是否包含右端点默认True,包含
labels:对应标签,用标记来代替返回的bins,若不在该序列中,则返回NaN
retbins:是否返回间距bins
precision:精度
include_lowest:是否包含左端点,默认False,不包含
"""
dt_product_sales['价格分组']=pd.cut(dt_product_sales.售卖价,bins=listbins,labels=list_labels,include_lowest=True)
dt_product_sales.head()
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | 收藏数 | 加购物车数 | 商品销售数量 | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | 价格分组 | |
0 | A001 | 15 | 70 | 0.214286 | 501 | 35070 | 14 | 0.066667 | 2 | 10926 | 48 | 372 | 185 | 2775.000000 | 59 | 885.000000 | 15.000000 | 116 | 1-200 |
1 | A002 | 236 | 610 | 0.386885 | 423 | 258030 | 75 | 0.682203 | 1 | 13124 | 84 | 193 | 146 | 34456.000000 | 31 | 7316.000000 | 236.000000 | 87 | 200-400 |
2 | A003 | 473 | 1253 | 0.377494 | 415 | 519995 | 394 | 0.167019 | 1 | 25657 | 45 | 173 | 144 | 68112.000000 | 31 | 14663.000000 | 473.000000 | 94 | 400以上 |
3 | A004 | 320 | 835 | 0.383234 | 624 | 521040 | 279 | 0.128125 | 2 | 20833 | 5 | 273 | 172 | 55040.000000 | 56 | 17920.000000 | 320.000000 | 111 | 200-400 |
4 | A005 | 15 | 82 | 0.182927 | 179 | 14678 | 27 | -0.800000 | 1 | 19371 | 71 | 356 | 122 | 1830.000000 | 32 | 480.000000 | 15.000000 | 81 | 1-200 |
价格区间销售情况统计
- 价格区间
- 货值
- 货值占比
- 销售额
- 售卖比
- 销售占比
- 销量
- 客单价
- UV
- 收藏数
- 加购数
- 转化率
# 货值分组数据、销量分组数据
dt_price_agg=dt_product_sales.groupby('价格分组').agg({'货值':sum,
'商品销售金额':sum,
'商品销售数量':sum,
'UV数':sum,
'购买用户数量':sum,
'收藏数':sum,
'加购物车数':sum}).reset_index()
dt_price_agg.head()
价格分组 | 货值 | 商品销售金额 | 商品销售数量 | UV数 | 购买用户数量 | 收藏数 | 加购物车数 | |
0 | 1-200 | 1573146 | 339896.000000 | 3615 | 369561 | 2280 | 1733 | 5324 |
1 | 200-400 | 8585973 | 1417702.000000 | 4978 | 465547 | 3151 | 2608 | 8302 |
2 | 400以上 | 8757276 | 1989569.000000 | 3424 | 340995 | 2161 | 1883 | 5064 |
# 货值占比、销售占比、客单价、转化率
dt_price_agg['货值占比']=dt_price_agg.货值/dt_price_agg.货值.sum()
dt_price_agg['销售占比']=dt_price_agg.商品销售金额/dt_price_agg.商品销售金额.sum()
dt_price_agg['客单价']=dt_price_agg.商品销售金额/dt_price_agg.购买用户数量
dt_price_agg['转化率']=dt_price_agg.购买用户数量/dt_price_agg.UV数
dt_price_agg
价格分组 | 货值 | 商品销售金额 | 商品销售数量 | UV数 | 购买用户数量 | 收藏数 | 加购物车数 | 货值占比 | 销售占比 | 客单价 | 转化率 | |
0 | 1-200 | 1573146 | 339896.000000 | 3615 | 369561 | 2280 | 1733 | 5324 | 0.083163 | 0.090707 | 149.077193 | 0.006169 |
1 | 200-400 | 8585973 | 1417702.000000 | 4978 | 465547 | 3151 | 2608 | 8302 | 0.453891 | 0.378340 | 449.921295 | 0.006768 |
2 | 400以上 | 8757276 | 1989569.000000 | 3424 | 340995 | 2161 | 1883 | 5064 | 0.462946 | 0.530953 | 920.670523 | 0.006337 |
# 取出400及以上价格区间的数据内容
dt_over_400=dt_product_sales[dt_product_sales['价格分组']=='400以上']
dt_over_400.head()
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | 收藏数 | 加购物车数 | 商品销售数量 | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | 价格分组 | |
2 | A003 | 473 | 1253 | 0.377494 | 415 | 519995 | 394 | 0.167019 | 1 | 25657 | 45 | 173 | 144 | 68112.000000 | 31 | 14663.000000 | 473.000000 | 94 | 400以上 |
5 | A006 | 428 | 1493 | 0.286674 | 264 | 394152 | 233 | 0.455607 | 1 | 5805 | 134 | 161 | 143 | 61204.000000 | 46 | 19688.000000 | 428.000000 | 90 | 400以上 |
10 | B001 | 426 | 1121 | 0.380018 | 479 | 536959 | 311 | 0.269953 | 1 | 20448 | 6 | 242 | 158 | 67308.000000 | 43 | 18318.000000 | 426.000000 | 101 | 400以上 |
13 | B004 | 491 | 1394 | 0.352224 | 396 | 552024 | 353 | 0.281059 | 2 | 14535 | 120 | 211 | 160 | 78560.000000 | 47 | 23077.000000 | 491.000000 | 102 | 400以上 |
15 | B006 | 484 | 1467 | 0.329925 | 296 | 434232 | 398 | 0.177686 | 2 | 3733 | 115 | 285 | 141 | 68244.000000 | 48 | 23232.000000 | 484.000000 | 91 | 400以上 |
计算商品指标
- 销售额
- 销量
- 件单价
- 客户数
- UV
- 转换率=客户数 / UV
- 库存
- 备货值=吊牌价 * 库存数
- 售卖比=又称售罄率,GMV / 备货值
# 转化率=客户数 / UV
dt_over_400['转化率']=dt_over_400.购买用户数量/dt_over_400.UV数
# 备货值=吊牌价 * 库存数
dt_over_400['备货值']=dt_over_400.吊牌价*dt_over_400.库存量
dt_over_400.head()
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | ... | 加购物车数 | 商品销售数量 | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | 价格分组 | 转化率 | 备货值 | |
2 | A003 | 473 | 1253 | 0.377494 | 415 | 519995 | 394 | 0.167019 | 1 | 25657 | ... | 173 | 144 | 68112.000000 | 31 | 14663.000000 | 473.000000 | 94 | 400以上 | 0.003664 | 519995 |
5 | A006 | 428 | 1493 | 0.286674 | 264 | 394152 | 233 | 0.455607 | 1 | 5805 | ... | 161 | 143 | 61204.000000 | 46 | 19688.000000 | 428.000000 | 90 | 400以上 | 0.015504 | 394152 |
10 | B001 | 426 | 1121 | 0.380018 | 479 | 536959 | 311 | 0.269953 | 1 | 20448 | ... | 242 | 158 | 67308.000000 | 43 | 18318.000000 | 426.000000 | 101 | 400以上 | 0.004939 | 536959 |
13 | B004 | 491 | 1394 | 0.352224 | 396 | 552024 | 353 | 0.281059 | 2 | 14535 | ... | 211 | 160 | 78560.000000 | 47 | 23077.000000 | 491.000000 | 102 | 400以上 | 0.007018 | 552024 |
15 | B006 | 484 | 1467 | 0.329925 | 296 | 434232 | 398 | 0.177686 | 2 | 3733 | ... | 285 | 141 | 68244.000000 | 48 | 23232.000000 | 484.000000 | 91 | 400以上 | 0.024377 | 434232 |
5 rows × 21 columns
# 售卖比=又称售罄率,GMV / 备货值
dt_over_400['售卖比']=dt_over_400.商品销售金额/dt_over_400.备货值
dt_over_400.head()
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | ... | 商品销售数量 | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | 价格分组 | 转化率 | 备货值 | 售卖比 | |
2 | A003 | 473 | 1253 | 0.377494 | 415 | 519995 | 394 | 0.167019 | 1 | 25657 | ... | 144 | 68112.000000 | 31 | 14663.000000 | 473.000000 | 94 | 400以上 | 0.003664 | 519995 | 0.130986 |
5 | A006 | 428 | 1493 | 0.286674 | 264 | 394152 | 233 | 0.455607 | 1 | 5805 | ... | 143 | 61204.000000 | 46 | 19688.000000 | 428.000000 | 90 | 400以上 | 0.015504 | 394152 | 0.155280 |
10 | B001 | 426 | 1121 | 0.380018 | 479 | 536959 | 311 | 0.269953 | 1 | 20448 | ... | 158 | 67308.000000 | 43 | 18318.000000 | 426.000000 | 101 | 400以上 | 0.004939 | 536959 | 0.125350 |
13 | B004 | 491 | 1394 | 0.352224 | 396 | 552024 | 353 | 0.281059 | 2 | 14535 | ... | 160 | 78560.000000 | 47 | 23077.000000 | 491.000000 | 102 | 400以上 | 0.007018 | 552024 | 0.142313 |
15 | B006 | 484 | 1467 | 0.329925 | 296 | 434232 | 398 | 0.177686 | 2 | 3733 | ... | 141 | 68244.000000 | 48 | 23232.000000 | 484.000000 | 91 | 400以上 | 0.024377 | 434232 | 0.157160 |
5 rows × 22 columns
dt_over_400[['商品名','商品销售金额','商品销售数量','购买用户数量','UV数','转化率','库存量','备货值','售卖比']].head()
商品名 | 商品销售金额 | 商品销售数量 | 购买用户数量 | UV数 | 转化率 | 库存量 | 备货值 | 售卖比 | |
2 | A003 | 68112.000000 | 144 | 94 | 25657 | 0.003664 | 415 | 519995 | 0.130986 |
5 | A006 | 61204.000000 | 143 | 90 | 5805 | 0.015504 | 264 | 394152 | 0.155280 |
10 | B001 | 67308.000000 | 158 | 101 | 20448 | 0.004939 | 479 | 536959 | 0.125350 |
13 | B004 | 78560.000000 | 160 | 102 | 14535 | 0.007018 | 396 | 552024 | 0.142313 |
15 | B006 | 68244.000000 | 141 | 91 | 3733 | 0.024377 | 296 | 434232 | 0.157160 |
dt_over_400.describe().iloc[:,-3:]
转化率 | 备货值 | 售卖比 | |
count | 23.000000 | 23.000000 | 23.000000 |
mean | 0.009080 | 380751.130435 | 0.253001 |
std | 0.006193 | 124618.094156 | 0.122274 |
min | 0.003664 | 179772.000000 | 0.124160 |
25% | 0.004587 | 285115.000000 | 0.155137 |
50% | 0.007018 | 319682.000000 | 0.230562 |
75% | 0.012989 | 484616.500000 | 0.318303 |
max | 0.024377 | 645402.000000 | 0.639005 |
优化方案:
- 转化率大于0.8%的商品,暂时保留,用于下次促销活动;
- 转化率小于0.8%的商品,但是售卖比大于25%的商品予以保留参加下次促销活动,
- 转化率小于0.8%的商品,并且售卖比小于25%的商品进行清仓处理。
# 挑选合格的商品:
# 1、保留商品:转化率大于0.8%的商品予以保留
dt.remain1=dt_over_400[dt_over_400.转化率>0.008]
dt.remain1.head()
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | ... | 商品销售数量 | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | 价格分组 | 转化率 | 备货值 | 售卖比 | |
5 | A006 | 428 | 1493 | 0.286674 | 264 | 394152 | 233 | 0.455607 | 1 | 5805 | ... | 143 | 61204.000000 | 46 | 19688.000000 | 428.000000 | 90 | 400以上 | 0.015504 | 394152 | 0.155280 |
15 | B006 | 484 | 1467 | 0.329925 | 296 | 434232 | 398 | 0.177686 | 2 | 3733 | ... | 141 | 68244.000000 | 48 | 23232.000000 | 484.000000 | 91 | 400以上 | 0.024377 | 434232 | 0.157160 |
29 | C010 | 750 | 1226 | 0.611746 | 229 | 280754 | 128 | 0.829333 | 1 | 5044 | ... | 117 | 87750.000000 | 43 | 32250.000000 | 750.000000 | 75 | 400以上 | 0.014869 | 280754 | 0.312551 |
46 | E007 | 930 | 1578 | 0.589354 | 409 | 645402 | 356 | 0.617204 | 1 | 7264 | ... | 154 | 143220.000000 | 47 | 43710.000000 | 930.000000 | 96 | 400以上 | 0.013216 | 645402 | 0.221908 |
50 | F001 | 920 | 1438 | 0.639777 | 217 | 312046 | 237 | 0.742391 | 1 | 4630 | ... | 116 | 106720.000000 | 40 | 36800.000000 | 920.000000 | 80 | 400以上 | 0.017279 | 312046 | 0.342001 |
5 rows × 22 columns
# 挑选合格的商品:
# 2、保留商品:找出转化率小于0.8% 但是 售卖比大于25%的部分予以保留
dt.remain2=dt_over_400[(dt_over_400.转化率<0.008) & (dt_over_400.售卖比>0.25)]
dt.remain2.head()
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | ... | 商品销售数量 | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | 价格分组 | 转化率 | 备货值 | 售卖比 | |
48 | E009 | 401 | 1004 | 0.399402 | 224 | 224896 | 268 | 0.331671 | 2 | 25477 | ... | 155 | 62155.000000 | 50 | 20050.000000 | 401.000000 | 99 | 400以上 | 0.003886 | 224896 | 0.276372 |
60 | G001 | 463 | 1266 | 0.365719 | 142 | 179772 | 268 | 0.421166 | 2 | 13011 | ... | 142 | 65746.000000 | 46 | 21298.000000 | 463.000000 | 95 | 400以上 | 0.007302 | 179772 | 0.365719 |
69 | G010 | 720 | 1156 | 0.622837 | 267 | 308652 | 152 | 0.788889 | 1 | 19119 | ... | 145 | 104400.000000 | 42 | 30240.000000 | 720.000000 | 91 | 400以上 | 0.004760 | 308652 | 0.338245 |
75 | H006 | 710 | 825 | 0.860606 | 324 | 267300 | 203 | 0.714085 | 2 | 10479 | ... | 122 | 86620.000000 | 43 | 30530.000000 | 710.000000 | 82 | 400以上 | 0.007825 | 267300 | 0.324055 |
4 rows × 22 columns
# 3、清仓处理商品,找出转化率小于0.8%并且售卖比小于25%的部分
dt.clearance=dt_over_400[(dt_over_400.转化率<0.008) & (dt_over_400.售卖比<0.25)]
dt.clearance.head()
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | ... | 商品销售数量 | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | 价格分组 | 转化率 | 备货值 | 售卖比 | |
2 | A003 | 473 | 1253 | 0.377494 | 415 | 519995 | 394 | 0.167019 | 1 | 25657 | ... | 144 | 68112.000000 | 31 | 14663.000000 | 473.000000 | 94 | 400以上 | 0.003664 | 519995 | 0.130986 |
10 | B001 | 426 | 1121 | 0.380018 | 479 | 536959 | 311 | 0.269953 | 1 | 20448 | ... | 158 | 67308.000000 | 43 | 18318.000000 | 426.000000 | 101 | 400以上 | 0.004939 | 536959 | 0.125350 |
13 | B004 | 491 | 1394 | 0.352224 | 396 | 552024 | 353 | 0.281059 | 2 | 14535 | ... | 160 | 78560.000000 | 47 | 23077.000000 | 491.000000 | 102 | 400以上 | 0.007018 | 552024 | 0.142313 |
16 | B007 | 548 | 1499 | 0.365577 | 325 | 487175 | 420 | 0.233577 | 2 | 29492 | ... | 201 | 110148.000000 | 66 | 36168.000000 | 548.000000 | 122 | 400以上 | 0.004137 | 487175 | 0.226095 |
17 | B008 | 480 | 1422 | 0.337553 | 339 | 482058 | 302 | 0.370833 | 2 | 18574 | ... | 136 | 65280.000000 | 39 | 18720.000000 | 480.000000 | 82 | 400以上 | 0.004415 | 482058 | 0.135419 |
5 rows × 22 columns
三、从折扣区间来优化商品结构
同样地,我们选择0.35-0.4折扣区间进行深入探究。dt_product_discount_info表中,我们可以得到0.35-0.4折扣区间的售卖比为16.90%,转化率为0.53%,折扣率为37%,在进行商品结构优化的时候要着重对比这几个指标。
dt_product_sales.head()
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | 收藏数 | 加购物车数 | 商品销售数量 | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | 价格分组 | |
0 | A001 | 15 | 70 | 0.214286 | 501 | 35070 | 14 | 0.066667 | 2 | 10926 | 48 | 372 | 185 | 2775.000000 | 59 | 885.000000 | 15.000000 | 116 | 1-200 |
1 | A002 | 236 | 610 | 0.386885 | 423 | 258030 | 75 | 0.682203 | 1 | 13124 | 84 | 193 | 146 | 34456.000000 | 31 | 7316.000000 | 236.000000 | 87 | 200-400 |
2 | A003 | 473 | 1253 | 0.377494 | 415 | 519995 | 394 | 0.167019 | 1 | 25657 | 45 | 173 | 144 | 68112.000000 | 31 | 14663.000000 | 473.000000 | 94 | 400以上 |
3 | A004 | 320 | 835 | 0.383234 | 624 | 521040 | 279 | 0.128125 | 2 | 20833 | 5 | 273 | 172 | 55040.000000 | 56 | 17920.000000 | 320.000000 | 111 | 200-400 |
4 | A005 | 15 | 82 | 0.182927 | 179 | 14678 | 27 | -0.800000 | 1 | 19371 | 71 | 356 | 122 | 1830.000000 | 32 | 480.000000 | 15.000000 | 81 | 1-200 |
# 划分价格区间段
#设置切分区域
discount_bins=[0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55,0.60,0.65,0.70,1]
#设置切分后对应标签
discount_labels=['0.15-0.20','0.20-0.25','0.25-0.30','0.30-0.35','0.35-0.40','0.40-0.45',
'0.45-0.50','0.50-0.55','0.55-0.60','0.60-0.65','0.65-0.70','0.70-1',]
#利用pd.cut进行数据离散化切分,注意分组标签和分组数要一致
"""
pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False)
x:需要切分的数据
bins:切分区域
right : 是否包含右端点默认True,包含
labels:对应标签,用标记来代替返回的bins,若不在该序列中,则返回NaN
retbins:是否返回间距bins
precision:精度
include_lowest:是否包含左端点,默认False,不包含
"""
dt_product_sales['折扣区间']=pd.cut(dt_products.折扣率,bins=discount_bins,labels=discount_labels,include_lowest=True)
dt_product_sales.head()
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | 收藏数 | 加购物车数 | 商品销售数量 | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | 价格分组 | 折扣区间 | |
0 | A001 | 15 | 70 | 0.214286 | 501 | 35070 | 14 | 0.066667 | 2 | 10926 | 48 | 372 | 185 | 2775.000000 | 59 | 885.000000 | 15.000000 | 116 | 1-200 | 0.20-0.25 |
1 | A002 | 236 | 610 | 0.386885 | 423 | 258030 | 75 | 0.682203 | 1 | 13124 | 84 | 193 | 146 | 34456.000000 | 31 | 7316.000000 | 236.000000 | 87 | 200-400 | 0.35-0.40 |
2 | A003 | 473 | 1253 | 0.377494 | 415 | 519995 | 394 | 0.167019 | 1 | 25657 | 45 | 173 | 144 | 68112.000000 | 31 | 14663.000000 | 473.000000 | 94 | 400以上 | 0.35-0.40 |
3 | A004 | 320 | 835 | 0.383234 | 624 | 521040 | 279 | 0.128125 | 2 | 20833 | 5 | 273 | 172 | 55040.000000 | 56 | 17920.000000 | 320.000000 | 111 | 200-400 | 0.35-0.40 |
4 | A005 | 15 | 82 | 0.182927 | 179 | 14678 | 27 | -0.800000 | 1 | 19371 | 71 | 356 | 122 | 1830.000000 | 32 | 480.000000 | 15.000000 | 81 | 1-200 | 0.15-0.20 |
折扣区间销售情况统计
- 价格区间
- 货值
- 货值占比
- 销售额
- 售卖比
- 销售占比
- 销量
- 客单价
- UV
- 收藏数
- 加购数
- 转化率
# 货值分组数据、销售分组数据等
dt_discount_agg=dt_product_sales.groupby('折扣区间').agg({'货值':sum,
'商品销售金额':sum,
'商品销售数量':sum,
'UV数':sum,
'购买用户数量':sum,
'收藏数':sum,
'加购物车数':sum}).reset_index()
dt_discount_agg
折扣区间 | 货值 | 商品销售金额 | 商品销售数量 | UV数 | 购买用户数量 | 收藏数 | 加购物车数 | |
0 | 0.15-0.20 | 14678 | 1830.000000 | 122 | 19371 | 81 | 71 | 356 |
1 | 0.20-0.25 | 597376 | 106944.000000 | 1052 | 67808 | 634 | 520 | 1505 |
2 | 0.25-0.30 | 546516 | 79924.000000 | 725 | 66471 | 462 | 538 | 971 |
3 | 0.30-0.35 | 2553886 | 382794.000000 | 1065 | 87609 | 660 | 536 | 1530 |
4 | 0.35-0.40 | 8105784 | 1369758.000000 | 3696 | 443317 | 2341 | 2046 | 5884 |
5 | 0.40-0.45 | 2098352 | 453179.000000 | 1988 | 184205 | 1258 | 845 | 3428 |
6 | 0.45-0.50 | 1869262 | 311158.000000 | 1452 | 138194 | 934 | 683 | 1996 |
7 | 0.50-0.55 | 112395 | 38024.000000 | 196 | 26088 | 124 | 25 | 84 |
8 | 0.55-0.60 | 645402 | 143220.000000 | 154 | 7264 | 96 | 78 | 388 |
9 | 0.60-0.65 | 1785946 | 590706.000000 | 1144 | 98210 | 735 | 630 | 1795 |
10 | 0.65-0.70 | 319498 | 183010.000000 | 301 | 27087 | 185 | 169 | 690 |
11 | 0.70-1 | 267300 | 86620.000000 | 122 | 10479 | 82 | 83 | 63 |
# 货值占比、销量占比、客单价、转化率
dt_discount_agg['货值占比']=dt_discount_agg.货值/dt_discount_agg.货值.sum()
dt_discount_agg['销量占比']=dt_discount_agg.商品销售数量/dt_discount_agg.商品销售数量.sum()
dt_discount_agg['客单价']=dt_discount_agg.商品销售金额/dt_discount_agg.购买用户数量
dt_discount_agg['转化率']=dt_discount_agg.购买用户数量/dt_discount_agg.UV数
dt_discount_agg
折扣区间 | 货值 | 商品销售金额 | 商品销售数量 | UV数 | 购买用户数量 | 收藏数 | 加购物车数 | 货值占比 | 销量占比 | 客单价 | 转化率 | |
0 | 0.15-0.20 | 14678 | 1830.000000 | 122 | 19371 | 81 | 71 | 356 | 0.000776 | 0.010152 | 22.592593 | 0.004182 |
1 | 0.20-0.25 | 597376 | 106944.000000 | 1052 | 67808 | 634 | 520 | 1505 | 0.031580 | 0.087543 | 168.681388 | 0.009350 |
2 | 0.25-0.30 | 546516 | 79924.000000 | 725 | 66471 | 462 | 538 | 971 | 0.028891 | 0.060331 | 172.995671 | 0.006950 |
3 | 0.30-0.35 | 2553886 | 382794.000000 | 1065 | 87609 | 660 | 536 | 1530 | 0.135009 | 0.088624 | 579.990909 | 0.007533 |
4 | 0.35-0.40 | 8105784 | 1369758.000000 | 3696 | 443317 | 2341 | 2046 | 5884 | 0.428506 | 0.307564 | 585.116617 | 0.005281 |
5 | 0.40-0.45 | 2098352 | 453179.000000 | 1988 | 184205 | 1258 | 845 | 3428 | 0.110928 | 0.165432 | 360.237679 | 0.006829 |
6 | 0.45-0.50 | 1869262 | 311158.000000 | 1452 | 138194 | 934 | 683 | 1996 | 0.098817 | 0.120829 | 333.145610 | 0.006759 |
7 | 0.50-0.55 | 112395 | 38024.000000 | 196 | 26088 | 124 | 25 | 84 | 0.005942 | 0.016310 | 306.645161 | 0.004753 |
8 | 0.55-0.60 | 645402 | 143220.000000 | 154 | 7264 | 96 | 78 | 388 | 0.034119 | 0.012815 | 1491.875000 | 0.013216 |
9 | 0.60-0.65 | 1785946 | 590706.000000 | 1144 | 98210 | 735 | 630 | 1795 | 0.094413 | 0.095198 | 803.681633 | 0.007484 |
10 | 0.65-0.70 | 319498 | 183010.000000 | 301 | 27087 | 185 | 169 | 690 | 0.016890 | 0.025048 | 989.243243 | 0.006830 |
11 | 0.70-1 | 267300 | 86620.000000 | 122 | 10479 | 82 | 83 | 63 | 0.014131 | 0.010152 | 1056.341463 | 0.007825 |
# 取出0.35-0.4价格区间的数据内容
discount_3540=dt_product_sales[dt_product_sales['折扣区间']=='0.35-0.40']
discount_3540.head()
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | 收藏数 | 加购物车数 | 商品销售数量 | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | 价格分组 | 折扣区间 | |
1 | A002 | 236 | 610 | 0.386885 | 423 | 258030 | 75 | 0.682203 | 1 | 13124 | 84 | 193 | 146 | 34456.000000 | 31 | 7316.000000 | 236.000000 | 87 | 200-400 | 0.35-0.40 |
2 | A003 | 473 | 1253 | 0.377494 | 415 | 519995 | 394 | 0.167019 | 1 | 25657 | 45 | 173 | 144 | 68112.000000 | 31 | 14663.000000 | 473.000000 | 94 | 400以上 | 0.35-0.40 |
3 | A004 | 320 | 835 | 0.383234 | 624 | 521040 | 279 | 0.128125 | 2 | 20833 | 5 | 273 | 172 | 55040.000000 | 56 | 17920.000000 | 320.000000 | 111 | 200-400 | 0.35-0.40 |
10 | B001 | 426 | 1121 | 0.380018 | 479 | 536959 | 311 | 0.269953 | 1 | 20448 | 6 | 242 | 158 | 67308.000000 | 43 | 18318.000000 | 426.000000 | 101 | 400以上 | 0.35-0.40 |
12 | B003 | 288 | 746 | 0.386059 | 439 | 327494 | 109 | 0.621528 | 1 | 23170 | 111 | 299 | 151 | 43488.000000 | 44 | 12672.000000 | 288.000000 | 89 | 200-400 | 0.35-0.40 |
计算商品指标
- 销售额
- 销量
- 件单价
- 客户数
- UV
- 转换率=客户数 / UV
- 库存
- 货值=吊牌价 * 库存数
- 售卖比=又称售罄率,GMV / 备货值
# 转化率=客户数 / UV
# 备货值=吊牌价 * 库存数
discount_3540['转化率']=discount_3540.购买用户数量/discount_3540.UV数
discount_3540['备货值']=discount_3540.吊牌价*discount_3540.库存量
discount_3540.head()
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | ... | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | 价格分组 | 折扣区间 | 转化率 | 备货值 | 售卖比 | |
1 | A002 | 236 | 610 | 0.386885 | 423 | 258030 | 75 | 0.682203 | 1 | 13124 | ... | 34456.000000 | 31 | 7316.000000 | 236.000000 | 87 | 200-400 | 0.35-0.40 | 0.006629 | 258030 | 0.133535 |
2 | A003 | 473 | 1253 | 0.377494 | 415 | 519995 | 394 | 0.167019 | 1 | 25657 | ... | 68112.000000 | 31 | 14663.000000 | 473.000000 | 94 | 400以上 | 0.35-0.40 | 0.003664 | 519995 | 0.130986 |
3 | A004 | 320 | 835 | 0.383234 | 624 | 521040 | 279 | 0.128125 | 2 | 20833 | ... | 55040.000000 | 56 | 17920.000000 | 320.000000 | 111 | 200-400 | 0.35-0.40 | 0.005328 | 521040 | 0.105635 |
10 | B001 | 426 | 1121 | 0.380018 | 479 | 536959 | 311 | 0.269953 | 1 | 20448 | ... | 67308.000000 | 43 | 18318.000000 | 426.000000 | 101 | 400以上 | 0.35-0.40 | 0.004939 | 536959 | 0.125350 |
12 | B003 | 288 | 746 | 0.386059 | 439 | 327494 | 109 | 0.621528 | 1 | 23170 | ... | 43488.000000 | 44 | 12672.000000 | 288.000000 | 89 | 200-400 | 0.35-0.40 | 0.003841 | 327494 | 0.132790 |
5 rows × 23 columns
# 售卖比=又称售罄率,GMV / 备货值
discount_3540['售卖比']=discount_3540.商品销售金额/discount_3540.备货值
discount_3540.head()
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | ... | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | 价格分组 | 折扣区间 | 转化率 | 备货值 | 售卖比 | |
1 | A002 | 236 | 610 | 0.386885 | 423 | 258030 | 75 | 0.682203 | 1 | 13124 | ... | 34456.000000 | 31 | 7316.000000 | 236.000000 | 87 | 200-400 | 0.35-0.40 | 150.850575 | 258030 | 0.133535 |
2 | A003 | 473 | 1253 | 0.377494 | 415 | 519995 | 394 | 0.167019 | 1 | 25657 | ... | 68112.000000 | 31 | 14663.000000 | 473.000000 | 94 | 400以上 | 0.35-0.40 | 272.946809 | 519995 | 0.130986 |
3 | A004 | 320 | 835 | 0.383234 | 624 | 521040 | 279 | 0.128125 | 2 | 20833 | ... | 55040.000000 | 56 | 17920.000000 | 320.000000 | 111 | 200-400 | 0.35-0.40 | 187.684685 | 521040 | 0.105635 |
10 | B001 | 426 | 1121 | 0.380018 | 479 | 536959 | 311 | 0.269953 | 1 | 20448 | ... | 67308.000000 | 43 | 18318.000000 | 426.000000 | 101 | 400以上 | 0.35-0.40 | 202.455446 | 536959 | 0.125350 |
12 | B003 | 288 | 746 | 0.386059 | 439 | 327494 | 109 | 0.621528 | 1 | 23170 | ... | 43488.000000 | 44 | 12672.000000 | 288.000000 | 89 | 200-400 | 0.35-0.40 | 260.337079 | 327494 | 0.132790 |
5 rows × 23 columns
discount_3540.describe().iloc[:,-3:]
转化率 | 备货值 | 售卖比 | |
count | 25.000000 | 25.000000 | 25.000000 |
mean | 0.006746 | 324231.360000 | 0.194728 |
std | 0.004307 | 160733.327436 | 0.076399 |
min | 0.003325 | 86436.000000 | 0.088185 |
25% | 0.003892 | 209982.000000 | 0.131121 |
50% | 0.005011 | 262892.000000 | 0.187435 |
75% | 0.007296 | 487175.000000 | 0.230854 |
max | 0.021228 | 679320.000000 | 0.365719 |
优化结果:
- 折扣率**大于37%**的部分找出售卖比大于36.5%且转化率大于0.7%的商品予以保留,其余进行清仓处理;
- 折扣率**小于37%**的部分找出售卖比大于36.5%且转化率大于0.7%的部分予以保留,其余进行清仓处理。
# 挑选合格的商品:
# 1、保留商品:折扣率大于37%的部分找出售卖比大于36.5%且转化率大于0.7%的商品予以保留
discount_remain1=discount_3540[(discount_3540.折扣率>0.37)&(discount_3540.售卖比>0.365)&(discount_3540.转化率>0.007)]
discount_remain1
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | ... | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | 价格分组 | 折扣区间 | 转化率 | 备货值 | 售卖比 | |
64 | G005 | 221 | 588 | 0.375850 | 147 | 86436 | 106 | 0.520362 | 2 | 4334 | ... | 31603.000000 | 43 | 9503.000000 | 221.000000 | 92 | 200-400 | 0.35-0.40 | 0.021228 | 86436 | 0.365623 |
1 rows × 23 columns
# 2、清仓处理商品,不满足条件的:折扣率大于37%的部分找出售卖比小于36.5%或转化率小于0.7%的商品
# 取反即可
discount_clearance1=discount_3540[(discount_3540.折扣率>0.37)&((discount_3540.售卖比<0.365)|(discount_3540.转化率<0.007))]
discount_clearance1
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | ... | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | 价格分组 | 折扣区间 | 转化率 | 备货值 | 售卖比 | |
1 | A002 | 236 | 610 | 0.386885 | 423 | 258030 | 75 | 0.682203 | 1 | 13124 | ... | 34456.000000 | 31 | 7316.000000 | 236.000000 | 87 | 200-400 | 0.35-0.40 | 0.006629 | 258030 | 0.133535 |
2 | A003 | 473 | 1253 | 0.377494 | 415 | 519995 | 394 | 0.167019 | 1 | 25657 | ... | 68112.000000 | 31 | 14663.000000 | 473.000000 | 94 | 400以上 | 0.35-0.40 | 0.003664 | 519995 | 0.130986 |
3 | A004 | 320 | 835 | 0.383234 | 624 | 521040 | 279 | 0.128125 | 2 | 20833 | ... | 55040.000000 | 56 | 17920.000000 | 320.000000 | 111 | 200-400 | 0.35-0.40 | 0.005328 | 521040 | 0.105635 |
10 | B001 | 426 | 1121 | 0.380018 | 479 | 536959 | 311 | 0.269953 | 1 | 20448 | ... | 67308.000000 | 43 | 18318.000000 | 426.000000 | 101 | 400以上 | 0.35-0.40 | 0.004939 | 536959 | 0.125350 |
12 | B003 | 288 | 746 | 0.386059 | 439 | 327494 | 109 | 0.621528 | 1 | 23170 | ... | 43488.000000 | 44 | 12672.000000 | 288.000000 | 89 | 200-400 | 0.35-0.40 | 0.003841 | 327494 | 0.132790 |
19 | B010 | 390 | 992 | 0.393145 | 188 | 186496 | 265 | 0.320513 | 2 | 7934 | ... | 46800.000000 | 43 | 16770.000000 | 390.000000 | 82 | 200-400 | 0.35-0.40 | 0.010335 | 186496 | 0.250944 |
37 | D008 | 340 | 916 | 0.371179 | 287 | 262892 | 204 | 0.400000 | 2 | 6236 | ... | 42160.000000 | 36 | 12240.000000 | 340.000000 | 84 | 200-400 | 0.35-0.40 | 0.013470 | 262892 | 0.160370 |
48 | E009 | 401 | 1004 | 0.399402 | 224 | 224896 | 268 | 0.331671 | 2 | 25477 | ... | 62155.000000 | 50 | 20050.000000 | 401.000000 | 99 | 400以上 | 0.35-0.40 | 0.003886 | 224896 | 0.276372 |
63 | G004 | 392 | 1040 | 0.376923 | 479 | 498160 | 234 | 0.403061 | 2 | 15356 | ... | 57624.000000 | 50 | 19600.000000 | 392.000000 | 90 | 200-400 | 0.35-0.40 | 0.005861 | 498160 | 0.115674 |
70 | H001 | 297 | 755 | 0.393377 | 338 | 255190 | 166 | 0.441077 | 1 | 6856 | ... | 44253.000000 | 42 | 12474.000000 | 297.000000 | 92 | 200-400 | 0.35-0.40 | 0.013419 | 255190 | 0.173412 |
10 rows × 23 columns
# 挑选合格的商品:
# 3、保留商品:在折扣率小于37%的部分找出售卖比大于36.5%且转化率大于0.7%的部分予以保留
discount_remain2=discount_3540[(discount_3540.折扣率<0.37)&(discount_3540.售卖比>0.365)&(discount_3540.转化率>0.007)]
discount_remain2
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | ... | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | 价格分组 | 折扣区间 | 转化率 | 备货值 | 售卖比 | |
60 | G001 | 463 | 1266 | 0.365719 | 142 | 179772 | 268 | 0.421166 | 2 | 13011 | ... | 65746.000000 | 46 | 21298.000000 | 463.000000 | 95 | 400以上 | 0.35-0.40 | 0.007302 | 179772 | 0.365719 |
1 rows × 23 columns
# 4、清仓处理商品,不满足此条件的:在折扣率小于37%的部分找出售卖比小于36.5%或转化率小于0.7%的部分
# 取反即可
discount_clearance2=discount_3540[(discount_3540.折扣率<0.37)&((discount_3540.售卖比<0.365)|(discount_3540.转化率<0.007))]
discount_clearance2
商品名 | 售卖价 | 吊牌价 | 折扣率 | 库存量 | 货值 | 成本价 | 利润率 | SKU | UV数 | ... | 商品销售金额 | 退货件数 | 商品退货金额 | 商品销售单价 | 购买用户数量 | 价格分组 | 折扣区间 | 转换率 | 备货值 | 售卖比 | |
13 | B004 | 491 | 1394 | 0.352224 | 396 | 552024 | 353 | 0.281059 | 2 | 14535 | ... | 78560.0 | 47 | 23077.0 | 491.0 | 102 | 400及以上 | 0.35_0.4 | 0.007018 | 552024 | 0.142313 |
16 | B007 | 548 | 1499 | 0.365577 | 325 | 487175 | 420 | 0.233577 | 2 | 29492 | ... | 110148.0 | 66 | 36168.0 | 548.0 | 122 | 400及以上 | 0.35_0.4 | 0.004137 | 487175 | 0.226095 |
21 | C002 | 201 | 553 | 0.363472 | 287 | 158711 | 105 | 0.477612 | 1 | 7835 | ... | 29748.0 | 43 | 8643.0 | 201.0 | 97 | 200_400 | 0.35_0.4 | 0.012380 | 158711 | 0.187435 |
22 | C003 | 473 | 1321 | 0.358062 | 242 | 319682 | 254 | 0.463002 | 2 | 17244 | ... | 70950.0 | 44 | 20812.0 | 473.0 | 92 | 400及以上 | 0.35_0.4 | 0.005335 | 319682 | 0.221939 |
24 | C005 | 270 | 765 | 0.352941 | 178 | 136170 | 115 | 0.574074 | 2 | 12610 | ... | 39690.0 | 35 | 9450.0 | 270.0 | 92 | 200_400 | 0.35_0.4 | 0.007296 | 136170 | 0.291474 |
26 | C007 | 403 | 1122 | 0.359180 | 258 | 289476 | 167 | 0.585608 | 2 | 20754 | ... | 70122.0 | 47 | 18941.0 | 403.0 | 104 | 400及以上 | 0.35_0.4 | 0.005011 | 289476 | 0.242238 |
30 | D001 | 346 | 951 | 0.363828 | 239 | 227289 | 269 | 0.222543 | 1 | 24418 | ... | 45672.0 | 37 | 12802.0 | 346.0 | 90 | 200_400 | 0.35_0.4 | 0.003686 | 227289 | 0.200942 |
32 | D003 | 193 | 533 | 0.362101 | 417 | 222261 | 165 | 0.145078 | 1 | 27367 | ... | 29143.0 | 49 | 9457.0 | 193.0 | 91 | 1_200 | 0.35_0.4 | 0.003325 | 222261 | 0.131121 |
41 | E002 | 389 | 1080 | 0.360185 | 629 | 679320 | 244 | 0.372751 | 2 | 24150 | ... | 59906.0 | 36 | 14004.0 | 389.0 | 94 | 200_400 | 0.35_0.4 | 0.003892 | 679320 | 0.088185 |
42 | E003 | 486 | 1349 | 0.360267 | 354 | 477546 | 220 | 0.547325 | 2 | 19094 | ... | 59292.0 | 43 | 20898.0 | 486.0 | 77 | 400及以上 | 0.35_0.4 | 0.004033 | 477546 | 0.124160 |
54 | F005 | 338 | 957 | 0.353187 | 179 | 171303 | 206 | 0.390533 | 1 | 18817 | ... | 39546.0 | 32 | 10816.0 | 338.0 | 77 | 200_400 | 0.35_0.4 | 0.004092 | 171303 | 0.230854 |
56 | F007 | 488 | 1351 | 0.361214 | 235 | 317485 | 402 | 0.176230 | 2 | 25320 | ... | 73200.0 | 34 | 16592.0 | 488.0 | 95 | 400及以上 | 0.35_0.4 | 0.003752 | 317485 | 0.230562 |
77 | H008 | 324 | 886 | 0.365688 | 237 | 209982 | 157 | 0.515432 | 1 | 19245 | ... | 45036.0 | 40 | 12960.0 | 324.0 | 92 | 200_400 | 0.35_0.4 | 0.004780 | 209982 | 0.214476 |
13 rows × 23 columns
优化结果:
- 折扣率**大于37%**的部分找出售卖比大于36.5%且转化率大于0.7%的商品予以保留,其余进行清仓处理;
- 折扣率**小于37%**的部分找出售卖比大于36.5%且转化率大于0.7%的部分予以保留,其余进行清仓处理。
总体方案:
- 在一级入口中,首页的流量占比最高,我们可以将优化后的畅销款(A006、B006、C010、E007、F001、F002、H004、H007等)布局在首页档期流。
- 在唯品会中,我们需要不断的增加商品来保证我们的SKU数,对于新增的商品我们也会增加在其中。
- 对于平销款(E009、G001、G010、H006等),我们将其作为快抢和疯抢处理。
- 对于转化率低、售卖比低的滞销款(A003、B001、B004、B007、B008、C003、C007、D007、E003、F007等),我们将尽快下架商品。