淘宝天猫玩具销售数据可视化

🌟欢迎来到 我的博客 —— 探索技术的无限可能!


🌟博客的简介(文章目录)

背景描述

在当前的电子商务环境中,淘宝作为中国最大的在线购物平台之一,对于各类商品的销售情况具有重要的参考价值。乐高作为一种深受消费者喜爱的创意玩具,其在淘宝上的销售情况自然也备受关注。为了更好地了解乐高商品在淘宝上的销售状况,本分析将对销售乐高的店铺及其乐高产品、销量等相关信息进行深入的探讨。

数据说明

为了确保分析的准确性和全面性,我们采用了包括多个方面的数据集。首先,我们收集了销售乐高的店铺信息,这包括但不限于店铺的规模、信誉、经营时间等重要因素,这些因素都可能影响到乐高产品的销售情况。其次,我们也关注了乐高的种类产品,因为不同种类的乐高产品可能会受到消费者的不同欢迎程度,从而影响其销售情况。最后,我们还考虑了销售省份的信息,因为不同地区的消费者可能对乐高产品的需求存在差异。

数据来源

我们的数据主要来源于淘宝和天猫这两个大型电商平台。淘宝作为中国最大的C2C电商平台,其上的商品种类繁多,销售数据丰富,能够为我们提供大量的原始数据。而天猫则主要是B2C模式,其上的商家大多是品牌商或者授权经销商,因此,从天猫获取的数据可以为我们提供更专业、更权威的信息。通过对这两个平台的数据进行分析,我们可以更全面、更准确地了解乐高商品在淘宝上的销售情况。

数据集下载

乐高淘宝数据.csv
天猫乐高旗舰店数据.csv
乐高天猫数据概述.csv

1. 导入模块

在这里插入图片描述

2. 乐高淘宝数据分析及其可视化

2.1 乐高淘宝数据概览

在这里插入图片描述

在这里插入图片描述

2.2 乐高淘宝数据处理

在这里插入图片描述

在这里插入图片描述

2.3 乐高销量排名淘宝店铺Top50

使用Python的Pandas和Plotly库来处理和可视化数据。首先,从名为df_tb的数据框中按照’shop_name’列进行分组,并对每个组中的’purchase_num’列求和,然后按降序排序,并取前50个结果。
在这里插入图片描述

2.4 乐高产地数量排名top50

使用Plotly的px.bar函数创建一个条形图,其中x轴是地区,y轴是店铺统计数,颜色也根据店铺统计数来设置
在这里插入图片描述

2.5 天猫乐高价格分布

定义了价格区间和对应的标签,然后使用pandas的cut函数将价格分为不同的区间,并计算每个区间的数量。
在这里插入图片描述

在这里插入图片描述

2.6 不同价格区间的销售额整体表现分布

在这里插入图片描述

在这里插入图片描述

2.7 淘宝乐高标题词云图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 乐高天猫旗舰店数据分析及其可视化

3.1 乐高天猫旗舰店数据概览

在这里插入图片描述

3.2 乐高天猫旗舰店数据处理

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.3 乐高旗舰店月销量商品top50

在这里插入图片描述

3.4 乐高旗舰店不同价格区间商品数量分布

在这里插入图片描述
在这里插入图片描述

3.5 乐高旗舰店不同价格区间的销售额整体表现

在这里插入图片描述

3.6 乐高旗舰店商品标题词云图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


附录

1. 导入模块

import numpy as np
import pandas as pd
import plotly.graph_objects as go
import plotly.express as px
import jieba
from stylecloud import gen_stylecloud
from IPython.display import Image

2. 乐高淘宝数据分析及其可视化
2.1 乐高淘宝数据概览

df_tb =pd.read_csv('乐高淘宝数据.csv')
df_tb.head()

print("——" * 10)
print('数据集存在重复值个数:')
print(df_tb.duplicated().sum())
print("——" * 10)
print('数据集缺失值情况:')
print(df_tb.isna().sum())
print("——" * 10)
print('数据集各字段类型:')
print(df_tb.dtypes)
print("——" * 10)
print('数据总体概览:')
print(df_tb.info())

2.2 乐高淘宝数据处理

# 去除重复值
df_tb.drop_duplicates(inplace=True) 
# 删除购买人数为空的记录 
df_tb = df_tb[df_tb['purchase_num'].str.contains('人付款')] 

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

# purchase_num处理 
df_tb['purchase_num'] = df_tb['purchase_num'].str.extract('(\d+)').astype('int')

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

#location
df_tb['province'] = df_tb['location'].str.split(' ').str[0]
df_tb.head(5) 

2.3 乐高销量排名淘宝店铺Top50

shop_top100 = df_tb.groupby('shop_name')['purchase_num'].sum().sort_values(ascending=False).reset_index()[:50]

px.bar(shop_top100,  # 上面指定的数据
       title="乐高销量排名淘宝店铺Top50",
       template="plotly_white",  # 分别主题设置为:plotly、plotly_dark
       x="shop_name",  # 横坐标
       y="purchase_num",  # 纵坐标
       color="purchase_num",
      labels={"shop_name": "店铺名称", "purchase_num": "销量"})  # 颜色取值

2.4 乐高产地数量排名top50

province_top50 = df_tb.province.value_counts().reset_index()[:50]


px.bar(province_top50,  # 上面指定的数据
       title="乐高产地数量排名top50",
       template="plotly_white",  # 分别主题设置为:plotly、plotly_dark
       x="index",  # 横坐标
       y="province",  # 纵坐标
       color="province",
      labels={"index": "地区", "province": "店铺统计数"})  # 颜色取值

2.5 天猫乐高价格分布

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_tb['price'],bins=cut_bins,labels=cut_labels)
price_num = price_cut.value_counts().reset_index()


fig = px.pie(price_num,
             names="index",
             values="price",
             color="price",
             hole=0.3,   # 设置中间空心圆的比例:0-1之间
             labels={"index": "价格区间", "price": "价格数量"}
            )

fig.update_layout(
    title={   # 设置整个标题的名称和位置
        "text":"天猫乐高价格分布",
        "y":0.96,  # y轴数值
        "x":0.5,  # x轴数值
        "xanchor":"center",  # x、y轴相对位置
        "yanchor":"top"  
    }
)
fig.update_traces(
 textposition='inside',
    textinfo='percent+value+label',
    textfont_size=20,
    marker=dict(
                line=dict(color='#000000',
                          width=1)))
fig.show()

2.6 不同价格区间的销售额整体表现分布

df_tb['price_cut'] = price_cut 

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


fig = px.pie(cut_purchase,
             names="price_cut",
             values="sales_volume",
             color="sales_volume",
             hole=0.3,   # 设置中间空心圆的比例:0-1之间
             labels={"price_cut": "价格区间", "sales_volume": "销售额"}
            )

fig.update_layout(
    title={   # 设置整个标题的名称和位置
        "text":"不同价格区间的销售额整体表现分布",
        "y":0.96,  # y轴数值
        "x":0.5,  # x轴数值
        "xanchor":"center",  # x、y轴相对位置
        "yanchor":"top"  
    }
)
fig.update_traces(
 textposition='inside',
    textinfo='percent+value+label',
    textfont_size=20,
    marker=dict(
                line=dict(color='#000000',
                          width=1)))
fig.show()

2.7 淘宝乐高标题词云图

def get_cut_words(content_series):
    # 读入停用词表
    stop_words = [] 
    
    # 添加关键词
    my_words = ['乐高', '悟空小侠', '大颗粒', '小颗粒'] 
    for i in my_words:
        jieba.add_word(i) 

    # 自定义停用词
    my_stop_words = []
    stop_words.extend(my_stop_words)               

    # 分词
    word_num = jieba.lcut(content_series.str.cat(sep='。'), cut_all=False)

    # 条件筛选
    word_num_selected = [i for i in word_num if i not in stop_words and len(i)>=2]
    
    return word_num_selected
text = get_cut_words(content_series=df_tb['goods_name']) 
text[:10]
# 绘制词云图
gen_stylecloud(
    text=' '.join(text),
    collocations=False,
    font_path=r'‪C:\Windows\Fonts\msyh.ttc',
    icon_name='fas fa-plane',
    size = 768,
    output_name='淘宝乐高标题词云图.png'
)
Image(filename='淘宝乐高标题词云图.png')

3. 乐高天猫旗舰店数据分析及其可视化
3.1 乐高天猫旗舰店数据概览

df_tm = pd.read_csv('天猫乐高旗舰店数据.csv')
df_tm.head()

3.2 乐高天猫旗舰店数据处理

df_tm.drop_duplicates(inplace=True)

# 价格处理
def transform_price(x):
    if '-' in x:
        return (float(x.split('-')[1]) - float(x.split('-')[0]))/2
    else:
        return x 

# 价格转换
df_tm['price'] = df_tm.price.apply(lambda x:transform_price(x)).astype('float')

# 使用平均值填充缺失值
df_tm['sales_num'] = df_tm.sales_num.replace('无',200)

#转换类型
df_tm['sales_num'] = df_tm.sales_num.astype('int')


df_tm['title'] = df_tm.title.str.replace('乐高旗舰店|官网|2020年', '')

#销售额
df_tm['sales_volume'] = df_tm['sales_num'] * df_tm['price']


rank_top50 = df_tm.groupby('title')['sales_num'].sum().sort_values(ascending=False).reset_index()[:50]

3.3 乐高旗舰店月销量商品top50

px.bar(rank_top50,  # 上面指定的数据
       title="乐高旗舰店月销量商品top50",
       template="plotly_white",  # 分别主题设置为:plotly、plotly_dark
       x="title",  # 横坐标
       y="sales_num",  # 纵坐标
       color="sales_num",
        height=1000,  # 自定义高度为600
      labels={"title": "商品", "sales_num": "销量"})  # 颜色取值

3.4 乐高旗舰店不同价格区间商品数量分布

cut_bins = [0,200,400,600,800,1000,2000,9469]
cut_labels = ['0~50元', '50~100元', '100~200元', '200~300元', '300~500元', '500~1000元', '1000元以上']

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




# 创建图表
fig = px.pie(
    price_num,
    names="index",
    values="price",
    color="price",
    hole=0.3,
    labels={"index": "价格区间", "price": "价格数量"},
    template="ggplot2"  # 使用ggplot2样式模板
)

# 修改布局
fig.update_layout(
    title={
        "text": "乐高旗舰店不同价格区间商品数量分布",
        "y": 0.96,
        "x": 0.5,
        "xanchor": "center",
        "yanchor": "top"
    },
    legend=dict(
        yanchor="top",
        y=0.9,
        xanchor="left",
        x=0.8,
        orientation="v"
    )
)


# 自定义颜色方案
colors = ['#FF9999', '#66B2FF', '#99FF99', '#FFCC99']
fig.update_traces(textposition='inside',
    textinfo='percent+value+label',
    textfont_size=20,marker=dict(colors=colors))

# 显示图表
fig.show()

3.5 乐高旗舰店不同价格区间的销售额整体表现

# 添加列
df_tm['price_cut'] = price_cut
cut_purchase = df_tm.groupby('price_cut')['sales_volume'].sum().reset_index()

# 创建图表
fig = px.pie(
    cut_purchase,
    names="price_cut",
    values="sales_volume",
    color="sales_volume",
    hole=0.3,
    labels={"price_cut": "价格区间", "sales_volume": "销售额"},
    template="ggplot2"  # 使用ggplot2样式模板
)

# 修改布局
fig.update_layout(
    title={
        "text": "乐高旗舰店不同价格区间的销售额整体表现",
        "y": 0.96,
        "x": 0.5,
        "xanchor": "center",
        "yanchor": "top"
    },
    legend=dict(
        yanchor="top",
        y=0.9,
        xanchor="left",
        x=0.8,
        orientation="v"
    )
)


# 自定义颜色方案
colors = ['#FF9999', '#66B2FF', '#99FF99', '#FFCC99']
fig.update_traces(textposition='inside',
    textinfo='percent+value+label',
    textfont_size=20,marker=dict(colors=colors))

# 显示图表
fig.show()

3.6 乐高旗舰店商品标题词云图

text = get_cut_words(content_series=df_tm['title'])
text[:6]

gen_stylecloud(
    text=' '.join(text),
    collocations=False,
    font_path=r'‪C:\Windows\Fonts\msyh.ttc',
    icon_name='fas fa-gamepad',
    size=768,
    output_name='乐高旗舰店商品标题词云图.png'
)
Image(filename='乐高旗舰店商品标题词云图.png')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZShiJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值