Bootstrap

11-天猫订单数据分析

目录

前言

一、导入

二、使用步骤

1.数据清洗

2.对订单状况进行分析

3.每种订单数占比情况 

饼图:

 不同省份订单分析地图:

不同省份金额分析柱状图: 

散点图: 

总结


前言

天猫订单数据分析可以从多个角度进行分析,以下是一些常见的分析维度和方法:

  1. 基本统计分析:可以对订单数量、销售额、平均订单金额等进行基本统计分析,以了解整体的销售情况和趋势。

  2. 地域分析:可以根据订单的收货地址, 分析订单的地域分布情况,了解不同地区的销售情况和潜力。

  3. 时间分析:可以根据订单的下单时间、付款时间等,进行时间分析,了解不同时间段的订单量和销售额变化情况,以及不同时间段的用户行为和消费习惯。

  4. 用户行为分析:可以根据用户的购买频次、购买金额、购买种类等,进行用户行为分析,了解用户的购买习惯和偏好,以及不同用户群体的消费特征。

  5. 产品分析:可以根据产品的销售数量、销售额、销售排名等,对产品进行分析,了解产品的市场表现和受欢迎程度,进而指导产品的进一步发展和优化。

  6. 渠道分析:可以根据不同的营销渠道,如搜索引擎、社交媒体等,进行渠道分析,了解不同渠道的转化率、ROI等指标,为优化营销策略提供依据。


一、导入

import numpy as np
import pandas as pd

二、使用步骤

1.数据清洗

代码如下(示例):



data = pd.read_excel(r'C:\Users\B\Desktop\天猫订单.xlsx')
data.head()

data.info()

data.describe(include='all')

# 删除重复值
data.drop_duplicates(inplace=True)

data['星期'] = data['订单付款时间'].dt.dayofweek+1
data['小时'] = data['订单付款时间'].dt.hour
data


data['收货地址'].unique()  # 获取唯一值

data['收货地址'] = data['收货地址'].str.replace('上海','上海市')
data['收货地址'] = data['收货地址'].str.replace('重庆','重庆市')
data['收货地址'] = data['收货地址'].str.replace('北京','北京市')
data['收货地址'] = data['收货地址'].str.replace('天津','天津市')

2.对订单状况进行分析

代码如下(示例):



# 有效订单:有付款,没有退款
valid_order = data[(data['订单付款时间'].notnull()) & (data['退款金额']==0)]
valid_order



# 退款订单:有付款,有退款
refund_order = data[data['退款金额']>0]
refund_order



# 未付款订单:没有付款
unpaid_order = data[data['订单付款时间'].isnull()]
unpaid_order   # NaT not a time 时间空值  NaN  not a number 数字空值

3.每种订单数占比情况 

from pyecharts.charts import *
import pyecharts.options as opts

饼图:

pie_data = [('有效订单',len(valid_order)),('退款订单',len(refund_order)),('未付款订单',len(unpaid_order))]
pie_data




pie =(
    Pie()
    .add('订单',pie_data,
        label_opts=opts.LabelOpts(formatter='{b}:{d}%',font_size=15))
    .set_global_opts(title_opts=opts.TitleOpts(title='各订单占比分析',
                                               title_textstyle_opts=opts.TextStyleOpts(font_size=30,color='green'))
                    )
)
pie.render_notebook()

 不同省份订单分析地图:



data2 = data[data['订单付款时间'].notnull()]

# 按省份统计订单量 name='订单量'把原来的值列改列名为'订单量'
province_order_count = data2.groupby('收货地址')['订单金额'].count().reset_index(name='订单量') 



# 转成数据对
data_pair = dict(zip(province_order_count['收货地址'].tolist(),province_order_count['订单量'].tolist()))

data_pair



# 全国订单量地图

map = (
    Map()
    .add("",
    [list(x) for x in data_pair.items()],
         maptype='china',
         is_map_symbol_show=False
    )
    # 视角配置项 --- 可选项
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(is_show=True,min_=0,max_=3100,range_color=['red','orange','yellow','green','blue','indigo','violet'])
    )
    # 设置每块的阴影 
    .set_series_opts(itemstyle_opts=opts.TextStyleOpts(shadow_color="rgba(255,255,255,0.6)",shadow_blur=20)
    )
)

map.render_notebook()

不同省份金额分析柱状图: 



province_payment = data2.groupby('收货地址')[['订单金额','实付金额','退款金额']].sum().reset_index()
province_payment



# 把单位改成万
province_payment['订单金额']= province_payment['订单金额']/10000
province_payment['实付金额']= province_payment['实付金额']/10000
province_payment['退款金额']= province_payment['退款金额']/10000
# 按订单金额进行降序排序
province_payment.sort_values(ascending=False,by='订单金额',inplace=True)



bar = (
    Bar()
    .add_xaxis(province_payment['收货地址'].tolist())
    # stack=True 柱状图堆叠  category_gap柱子间的间隙的比例
    .add_yaxis('实付金额',round(province_payment['实付金额'],2).tolist(),stack=True,category_gap='30%')
    .add_yaxis('退款金额',round(province_payment['退款金额'],2).tolist(),stack=True,category_gap='30%')
    
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(name='省份',axislabel_opts={'rotate':90}),#给x轴添加名称,并旋转x轴标签
        datazoom_opts=[opts.DataZoomOpts()] # 缩放条
    )
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) # 去掉柱状图标签
)

# 订单金额 
effect = (
    EffectScatter()
    .add_xaxis(province_payment['收货地址'].tolist())
    .add_yaxis('订单金额',round(province_payment['订单金额'],2).tolist())
    .set_series_opts(label_opts=opts.LabelOpts(position='top'))
)
# 层叠图
overlap = bar.overlap(effect)
grid = Grid()
grid.add(overlap,grid_opts=opts.GridOpts(pos_top='35%'))
grid.render_notebook()

散点图: 



effect = (
    EffectScatter()
    .add_xaxis(province_payment['收货地址'].tolist())
    .add_yaxis('订单金额',round(province_payment['订单金额'],2).tolist())
    .set_series_opts(label_opts=opts.LabelOpts(position='top'))
)
effect.render_notebook()


总结

以上只是一些常见的分析维度和方法,具体的分析内容和方法还需要根据实际情况来确定,同时要结合实际业务场景和需求,进行深入的数据分析和挖掘。

;