目录
一、数据理解
二.指标分析
三.分析过程
四.总结
另一方面,数据理解1 .数据为天猫下单部分的真实数据,存储在一个tmall_order_report.csv文件中,共有28010条数据,具体字段如下:
订单编号
总额:订单总额,共计866种
买家实际支付金额:最终支付金额分为已支付和未支付
已支付:购买者的实际支付额=总额-退款额
未付:买方实际支付金额=0
收货地址:共31个省市
订单创建时间: 2020年2月1日至2020年2月29日
订单日期: 2020年2月1日至2020年3月1日
退款金额:支付后申请退款的金额,如果没有申请退款,则为0
二、指标分析1 .从上述字段可以看出,订单数据可以以销售额为结果指标,以销售额指标为中心进行如下分割
销售额=uv*转化率*客户单价
因为没有用户ID,所以订单号码可以是uv
转化率(转化流程为编制(支付)实际支付)每层全额转化率是多少
客人单价:每个订单的金额
2 .分析维度:时间、地域、产品
三、分析流程1、导入所需的库、编码、路径设置
导入熊猫As Pd, osimportnumpyasnpimportmatplotlib.pyplotaspltimportpyecharts.optionsasoptsfrompyecharts.chartsimportfunnelasfufrompyecharts importseabornassns % matplotlibinlineplt.rcparams [ ‘ font.sans-serif ‘ ]=[ ‘ simhei ‘ ] PLT=falsep=r ‘ c :\n
订单的支付时间不足。 预计未支付的订单,不予处理
df=PD.read _ CSV (TM all _ order _ report.CSV ) (df.info ) () ) )
时间列的格式为object,必须更改为datetime
在df[ ‘订单创建时间’ ]=PD.to_datetime(df[ ‘订单创建时间’ ] )字段中输入空间df.rename(columns=) lambdaI3360I.strip ),id
以订单支付时间为分组条件,合计购买者的实际支付金额
在matplotlib中绘制折线图
#按付款时间分列的每日付款金额情况df1=df.groupby(PD.grouper(key=’订单付款时间’,freq=’D ‘ ) ) (总额) (.sum ) (df ) ) (订单付款时间)=9 )取出#月和日,列表x=[f'{i}月{j}日’ for i,jinzip(df1.index.month,df1.index.day ) ] PLT.plot (范围)
=25)plt.xlabel(‘日期’)plt.ylabel(‘销售额’)plt.xticks(range(len(x)),x,rotation=45)%%capture #取消out输出
根据折线图可知:
3.1、2月4日出现小yydxh,随后在5-8月持续下降。
3.2、2.2.10-2.16日数据偏低,可以能存在数据缺失或数据失真。
3.3、2.17日开始上升,到2.25日达到最高。
4、各地区销售额分布情况
4.1、以收货地址分组,统计每个地区卖家实际支付金额。
4.2、用pyecharts绘制地图
sales=df3.groupby(by=’收货地址’)[‘买家实际支付金额’].sum().sort_values(ascending=False).to_frame(‘销售额’)x=[i.replace(‘省’,”).replace(‘自治区’,”) for i in sales.index]a=[i if len(i)<4 else i[:2] for i in x] #剪切掉带名族的长省max1=int(sales[‘销售额’].max())c=( ma() .add( ‘订单数’,[list(i) for i in zip(a, sales[‘销售额’].to_list())],’china’ ) .set_global_opts( title_opts=opts.TitleOpts(title=’各地区销售额情况’), visualmap_opts=opts.VisualMapOpts(max_=max1,is_piecewise=True) ))c.render_notebook()
5、转化率分析
根据上述信息,无法确定分析方向,所以假设2月总销售目标是220万
为了进一步了解数据,可以从不同环节转化率来看看是哪个环节出了问题
用户行为转化路劲:创建–付款–实付–全额
这里采用绝对转化率
实现:
求出各环节的订单数
求转化率:用本环节的订单数除以订单创建数
用pyecharts绘制漏斗图
# 看各个环节的漏斗——创建–付款–实际–全额 每一层的转化是多少rates=pd.Series({‘下单’:df[‘订单创建时间’].count(),’付款’:df[‘订单付款时间’].count(),’实付款’:df[df[‘买家实际支付金额’]>0].shape[0], #巧妙运算 df[df[‘买家实际支付金额’]>0].shape(0)’全额付款’:df[df[‘买家实际支付金额’]==df[‘总金额’]].shape[0]},name=’订单量’).to_frame() #还可以转化ratesrates[‘转化率’]=rates[‘订单量’].apply(lambda x:round(x/rates.iloc[0,0],3)) #添加rates[‘相对转化率’]=round((rates/rates.shift())[‘订单量’].fillna(1),3) #添加print(rates)#展示漏斗图c=(fu().add(‘ni’,[list(z) for z in zip(rates.index,rates[‘转化率’])], label_opts=opts.LabelOpts(position=’inside’,formatter='{b}:{c}’))).set_global_opts(title_opts=opts.TitleOpts(title=’整体转化率(%)’))c.render_notebook()
根据TrustData的报告显示,淘宝2015年平时的订单成功率为97.4%。而本次分析的付款转化率约86%低于预期标准,实际成交及全额成交的环节转化率不到70%。属于比较低的水平。
6、每日订单数量分析
61、以订单付款时间为分组条件,统计每日的订单数量
6.2、用matplotlib绘制折线图
#每日的付款订单量走势–df2=df.groupby(pd.Grouper(key=’订单创建时间’,freq=’D’))[‘订单付款时间’].count()x2=[f'{i}月{j}日’ for i,j in zip(df2.index.month,df2.index.day)]plt.figure(figsize=(16,9))plt.plot(range(len(x2)),df2,color=’r’)plt.title(‘每日付款订单走势’,fontsize=25)plt.xlabel(‘订单数’)plt.ylabel(‘日期’)plt.text(0,df2.max(),f’2月总的订单量为{df2.sum()}’,fontsize=20)plt.xticks(range(len(x2)),x2,rotation=45,fontsize=15)for a,b in zip(range(len(x2)),df2.values): plt.text(a,b,b,ha=’center’,fontsize=13)%%capture
根据前期数据估算,假设10-16日的日均订单数为300+,即2月总的订单数为2万6千左右。在客单价均不变的情况下,订单数要增加6k才能达到目标值。
17号后,订单量不断上升,峰值是平日的7倍。
7、产品销量前十的产品占比情况
7.1、筛选买家实际支付金额大于0的所有行
7.2、对总金额所在列求次,并降序排序
7.3、求出所有品类的占比情况
7.4、将除销量前10之外的其他产品合并为其他品类
7.5、利用matplotlib绘制饼图
#求前10的产品销量—用金额作为每种产品的区分#提取有支付的数据df3=df[df[‘买家实际支付金额’]>0]# df3hot=pd.DataFrame({‘总销量’:df3[‘总金额’].value_counts(), #默认按索引分组’全额总销量’:df3[df3[‘买家实际支付金额’]==df3[‘总金额’]][‘总金额’].value_counts()}).sort_values(by=’总销量’,ascending=False)hot[‘总销量占比’]=hot[‘总销量’].apply(lambda x:round(x*100/hot[‘总销量’].sum(),2))hot[‘销售额’]=df3.groupby(by=’总金额’)[‘买家实际支付金额’].sum()hot[‘销售额占比’]=hot[‘销售额’].apply(lambda x:round(x*100/hot[‘销售额’].sum(),2))hot.head(20)plt.figure(figsize=(5,4),dpi=160)a=hot.iloc[10:].sum().to_frame(‘其他’).unstack().unstack()hot2=pd.concat([hot.head(10),a])print(hot2)#色板color=sns.color_palette(‘hls’,11)#作图plt.pie(hot2[‘总销量占比’], autopct=’%3.1f%%’, labels=hot2.index, startangle=45,colors=color)plt.title(‘各品类销量情况’)
销量前10的产品销量占到了总销量的55%。
无历史数据进行对比,仅做方向分析
7.2、哪些产品排名出乎意料。
7.3、.对比历史销量变化情况,什么产品增长,什么产品开始下滑。
7.4、.走量类的产品销量是否多于品牌类产品。
7.5、.同一产品线的高中低端产品的销量分布情况。
四、总结
1、转化率情况:付款成功率为85.99%,低于正常水平的97.4%,实际成交和全额成交的转化率分别为67.67%和65.83%。
2、订单创建情况:2月订单数为2万6千个。在转化率及客单价不变的情况下,需要增6千订单才能达到目标值。
3、客单价/品类销售情况:目前销售前5的产品分别为37(2654件)、69(1776件)、119(1221件)、45(919件)、53(875件),销量前10的产品已占总销量的55%。