淘宝乐高销售分析

一、项目背景

对淘宝的乐高销售数据进行一定分析,了解乐高销售的整体情况

工具:jupyter notebook,python

 

二、分析内容

  1. 乐高销量排名top10店铺
  2. 乐高产地数量排名top10
  3. 乐高产地国内销量分布
  4. 不同价格区间的销量分布
  5. 不同价格区间的销售额表现

 

三、分析过程

3.1 导入数据

#导入相关的库
import pandas as pd 
import numpy as np 
import time 
from pyecharts.charts import Bar,Line,Map,Pie  
from pyecharts import options as opts 
from pyecharts.globals import SymbolType 

#导入原始数据
df = pd.read_csv('乐高淘宝数据.csv')

#查看前五行数据
df.head()

 

字段说明:

  • goods_name:商品名称
  • shop_name:店铺名称
  • price:价格
  • purchase_num:销量
  • location:产地

 

查看数据总体情况

df.info()

 

3.2 数据处理

  • 去除重复值
  • purchase_num提取人数
  • 计算销售额 = price * purchase_num
  • location:提取省份
#删去重复值
df.drop_duplicates(inplace = True)

#删去购买人数为空的记录
df = df[df['purchase_num'].str.contains('人付款')]

#重置索引
df = df.reset_index(drop = True)

df.info()

 

# purchase_num提取人数
df['purchase_num'] = df['purchase_num'].str.extract('(\d+)').astype('int')

# 计算销售额 
df['sales_volume'] = df['price'] * df['purchase_num']

#提取省份
df['province'] = df['location'].str.split(' ').str[0]
df.head()

 

3.3 数据可视化

3.3.1 乐高销量排名top10店铺

shop_top10 = df.groupby('shop_name')['purchase_num'].sum().sort_values(ascending=False).head(10)
shop_top10

 

#条形图
bar_purchase_top10 = (
    Bar()
    .add_xaxis(shop_top10.index.tolist())
    .add_yaxis('销量',shop_top10.values.tolist())
    .set_global_opts(title_opts = opts.TitleOpts(title = '乐高销量top10店铺'),
                     xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),
                     visualmap_opts=opts.VisualMapOpts(max_=28669)
                     )   
)
bar_purchase_top10.render_notebook()

 

  •  从分布图中能看出,官方旗舰店的销量遥遥领先,天猫超市和第三方店铺的销量差距不大

 

3.3.2 乐高产地数量top10

province_top10 = df.province.value_counts()[:10]
province_top10

#条形图
bar_province_top10 = (
    Bar()
    .add_xaxis(province_top10.index.tolist())
    .add_yaxis('产地数量',province_top10.values.tolist())
    .set_global_opts(title_opts = opts.TitleOpts(title = '乐高产地数量top10店铺'),                     
                     visualmap_opts=opts.VisualMapOpts(max_=1000)
                     )   
)
bar_province_top10.render_notebook()

 

  •  可以看到销售乐高的店铺更多来自广东、上海、北京

 

3.3.3 国内各省份乐高销量分布图

province_num = df.groupby('province')['purchase_num'].sum().sort_values(ascending = False)
province_num

map_province_num = (
    Map()
    .add(
         '',
        [list(z) for z in zip(province_num.index.tolist(), province_num.values.tolist())],
        'china')
    .set_global_opts(
        title_opts = opts.TitleOpts(title = '国内各产地乐高销量分布图'),
        visualmap_opts = opts.VisualMapOpts(max_ = 172277))
)
map_province_num.render_notebook()

 

  •  可以看到广东销量是最多的,其次是浙江
  • 淘宝的乐高官方旗舰店在浙江,前面也分析过官方旗舰店的销量远超其他店铺,28000+的销量占全浙江的67.4%,但是由于广东的乐高店铺非常多,使得广东销量在浙江销量的三倍以上
  • 这也能侧面反映出,广东的乐高玩家需求更多,或者是比起其他地区,乐高在广东的孩子教育中更加常见

 

3.3.4 淘宝乐高不同价格的商品分布

#切分价格区间
cut_bins = [0,50,100,200,300,500,1000,8888]  
cut_labels = ['0~50元', '50~100元', '100~200元', '200~300元', '300~500元', '500~1000元', '1000元以上']

price_cut = pd.cut(df['price'],bins=cut_bins,labels=cut_labels)
price_num = price_cut.value_counts()
price_num

#条形图
bar_price_num = (
    Bar()
    .add_xaxis(['0~50元', '50~100元', '100~200元', '200~300元', '300~500元', '500~1000元', '1000元以上'])
    .add_yaxis('', price_num.values.tolist())
    .set_global_opts(
            title_opts = opts.TitleOpts(title = '不同价格区间的商品数量'),
            visualmap_opts = opts.VisualMapOpts(max_ = 900)
    )
)
bar_price_num.render_notebook()

  •  各区间都有一定的商品数量,50元以下和100~200元区间形成两个峰,低价乐高更受欢迎,而100元以上的乐高在精致度上可能全面升级,也吸引了不少玩家,200元以上的商品并不少,占总数量的39%,说明也有很多玩家对更精致更复杂的乐高商品有需求

 

3.3.5 不同价格区间的销售额整体表现

df['price_cut'] = price_cut 

cut_purchase = df.groupby('price_cut')['sales_volume'].sum()
cut_purchase

#饼图
pie_cut_purchase = (
    Pie()
    .add(
        "",
        [list(z) for z in zip(cut_purchase.index.tolist(), cut_purchase.values.tolist())],
        radius = ['40%', '75%'],
    )
    .set_global_opts(
        title_opts = opts.TitleOpts(title = '不同价格区间的销售额整体表现'),
        legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))  #{b}:{c}显示'标签:数值',{d}显示百分数占比
    .set_colors(['#EF9050', '#3B7BA9', '#6FB27C', '#FFAF34', '#D8BFD8', '#00BFFF', '#7FFFAA'])
)

pie_cut_purchase.render_notebook()

 

 

  •  可以看到销售额贡献最多的价格区间是1000元以上、500~1000元、100~200元、300~500元这四个区间
  • 虽然50元以下商品的销量挺多,但因为单价低,贡献的销售额是最少的
  • 乐高玩家的消费能力颇高,乐高商品的发展趋势应该趋于精品化,往更精致更具特色的方向发展

 

posted @ 2020-10-04 16:07  Cles  阅读(1413)  评论(0)    收藏  举报