双十一淘宝美妆数据分析:用代码解析消费趋势与市场机会
引言:数据背后的美妆消费密码
每年的双十一购物节都是中国电商市场的重头戏,而美妆类产品往往是这场消费盛宴中的焦点。本文基于 "双十一淘宝美妆数据",通过数据清洗、特征工程、可视化分析等步骤,深入挖掘美妆市场的消费趋势、品牌表现及用户偏好,为品牌方和消费者提供有价值的参考。
一、数据初探:揭开数据集的面纱
1.1 数据概览
本次分析使用的数据集包含 27598 条记录,涵盖了淘宝平台上多个美妆品牌的商品信息,主要特征包括:
- update_time:数据更新时间
- id:商品唯一标识
- title:商品标题
- price:商品价格
- sale_count:销量
- comment_count:评论数
- 店名:品牌名称
通过df.head()查看前 5 行数据,我们可以快速了解数据的基本结构:
| update_time | id | title | price | sale_count | comment_count | 店名 |
|---|---|---|---|---|---|---|
| 2016/11/14 | A18164178225 | CHANDO / 自然堂 雪域精粹纯粹滋润霜 50g... | 139.0 | 26719.0 | 2704.0 | 自然堂 |
| 2016/11/14 | A18177105952 | CHANDO / 自然堂凝时鲜颜肌活乳液 120ML... | 194.0 | 8122.0 | 1492.0 | 自然堂 |
1.2 数据特征分析
通过df.info()和df.describe(),我们得到了更深入的信息:
- 数据类型:3 个数值型特征(price、sale_count、comment_count)和 4 个对象型特征
- 缺失值:sale_count 和 comment_count 存在缺失(共 2354 条)
- 数值分布:价格均值 362.83 元,中位数 205 元,存在高价商品拉高均值;销量均值 12301.77 件,中位数 1445 件,分布呈右偏态
-
二、数据清洗:为分析奠定基础
2.1 重复值处理
使用
drop_duplicates()方法去除重复数据,共发现 86 条重复记录,处理后保留 27512 条有效数据。2.2 缺失值处理
观察缺失值所在行发现,sale_count 和 comment_count 的缺失往往同时出现,且集中在植村秀、SK-II 等品牌。推测这些缺失值代表销量为 0,因此采用
fillna(0)用 0 填补缺失值,确保后续分析的准确性。2.3 特征工程:创造新的分析维度
2.3.1 商品标题分词
利用 jieba 分词工具对商品标题进行分词处理,提取关键信息
import jieba subtitle = [] for each in data['title']: k = jieba.lcut_for_search(each) # 搜索引擎模式 subtitle.append(k) data['subtitle'] = subtitle分词后,我们可以更精准地识别商品属性,为后续分类打下基础。
2.3.2 商品分类体系构建
根据美妆行业常见分类标准,构建二级分类体系:
- 大类:护肤品、化妆品、其他
- 小类:乳液类、眼部护理类、面膜类等 13 个子类别
-
通过自定义分类字典
dcatg,实现商品自动分类:# 部分分类规则示例 basic_data = """护肤品 乳液类 乳液 美白乳 润肤乳 护肤品 眼部护理类 眼霜 眼部 眼膜 化妆品 口红类 唇釉 口红 唇彩 唇膏""" # 生成分类字典 dcatg = {} for i in basic_data.split('\n'): main_cat, sub_cat, *keys = i.strip().split('\t') for key in keys: dcatg[key] = (main_cat, sub_cat)最终分类结果显示,有 4273 件商品被归为 "其他" 类,占比约 15.5%,说明分类体系仍有完善空间。
2.3.3 性别专属特征提取
通过标题中的关键词识别男士专用商品:
sex = [] for i in range(len(data)): if '男士' in data['subtitle'][i] or '男生' in data['subtitle'][i]: sex.append('是') elif '男' in data['subtitle'][i] and '女' not in data['subtitle'][i] and '斩男' not in data['subtitle'][i]: sex.append('是') else: sex.append('否') data['是否男士专用'] = sex统计显示,男士专用商品共 2179 件,占比 7.9%,非男士专用商品 25333 件,占比 92.1%。
2.3.4 销售额计算
新增 "销售额" 特征,为后续分析提供关键指标
data['销售额'] = data.price * data.sale_count
三、数据分析与可视化:洞察市场规律
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
from datetime import datetime
# 设置中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 假设data已完成清洗和特征工程
# data = pd.read_csv('cleaned_data.csv')
# 1. 品牌销售表现分析
plt.figure(figsize=(15, 6))
# 1.1 销量TOP5品牌
top5_sale = data.groupby('店名')['sale_count'].sum().nlargest(5)
plt.subplot(1, 3, 1)
top5_sale.plot(kind='bar', color='skyblue')
plt.title('销量TOP5品牌')
plt.ylabel('总销量')
# 1.2 销售额TOP5品牌
top5_rev = data.groupby('店名')['销售额'].sum().nlargest(5)
plt.subplot(1, 3, 2)
top5_rev.plot(kind='bar', color='lightgreen')
plt.title('销售额TOP5品牌')
plt.ylabel('总销售额')
# 1.3 品牌平均单价对比
avg_price = data.groupby('店名')['销售额'].sum() / data.groupby('店名')['sale_count'].sum()
top_avg_price = avg_price.nlargest(5)
plt.subplot(1, 3, 3)
top_avg_price.plot(kind='bar', color='salmon')
plt.title('平均单价TOP5品牌')
plt.ylabel('平均单价(元)')
plt.tight_layout()
plt.show()
# 2. 品类销售分析
plt.figure(figsize=(12, 5))
# 2.1 大类销量占比
main_type_sale = data.groupby('main_type')['sale_count'].sum()
plt.subplot(1, 2, 1)
plt.pie(main_type_sale, labels=main_type_sale.index, autopct='%1.1f%%')
plt.title('大类销量占比')
# 2.2 小类销量TOP5
sub_type_sale = data.groupby('sub_type')['sale_count'].sum().nlargest(5)
plt.subplot(1, 2, 2)
sub_type_sale.plot(kind='bar', color='purple')
plt.title('小类销量TOP5')
plt.ylabel('总销量')
plt.tight_layout()
plt.show()
# 3. 时间趋势分析
plt.figure(figsize=(10, 5))
# 3.1 每日销量趋势
data['update_time'] = pd.to_datetime(data['update_time'])
daily_sale = data.groupby(data['update_time'].dt.date)['sale_count'].sum()
daily_sale.plot(marker='o', color='blue')
plt.title('双十一期间每日销量趋势')
plt.ylabel('总销量')
plt.grid(linestyle='--', alpha=0.7)
plt.show()
# 4. 性别差异分析
plt.figure(figsize=(8, 5))
gender_sale = data.groupby('是否男士专用')['sale_count'].sum()
gender_sale.plot(kind='bar', color=['orange', 'green'])
plt.title('男士专用与非男士专用商品销量对比')
plt.ylabel('总销量')
plt.show()
核心分析结论:
-
品牌表现:
- 相宜本草在销量和销售额上均位居榜首,但其平均单价较低(属于大众消费价位)
- 雅诗兰黛平均单价最高,体现高端品牌溢价能力
- 悦诗风吟商品数量多但销量未进前三,存在商品结构优化空间
-
品类特征:
- 护肤品类占总销量的 70% 以上,是绝对主力
- 小类中清洁类、补水类、面霜类位列销量前三,反映基础护肤需求旺盛
-
时间规律:
- 销量峰值出现在 11 月 9 日(双十一前 2 天)
- 11 月 11 日当天销量显著下降,说明消费者存在 "错峰购物" 行为
-
性别差异:
- 男士专用商品销量仅占总量的 6.5%,市场潜力待挖掘
- 男士商品中以清洁类(如洗面奶)为主,占比超 40%
四、结论与建议
主要结论
- 价格策略影响显著:低价品牌在销量和销售额上均占优,大众市场仍是主力
- 品类偏好明显:护肤品(尤其清洁类、补水类)是消费主流
- 性别市场分化:男士专用商品占比低,但清洁类需求明确
- 时间规律特殊:双十一当天销量不及预期,预热期和返场期表现更好
- 评论数据异常:部分品牌评论数与销量不匹配,需关注数据真实性
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)