双十一美妆数据洞察:Pandas+Pyecharts实战分析

Pandas+Pyecharts | 双十一美妆销售数据分析可视化

一、技术选型与数据准备

双十一作为全球最大的购物狂欢节,美妆品类因高客单价、强消费需求成为核心战场。本文以某电商平台2023年双十一美妆销售数据为样本,使用Pandas进行数据清洗与特征工程,结合Pyecharts实现交互式可视化,构建从数据预处理到结果展示的全流程分析体系。

1.1 数据特征与清洗

原始数据包含订单ID、商品名称、品牌、品类(护肤/彩妆/香水)、价格、销量、用户地域、购买时间等字段。通过Pandas的read_csv()加载数据后,需处理以下问题:

  • 缺失值处理:使用df.dropna()删除关键字段缺失的记录,对非关键字段(如用户备注)填充默认值。
  • 异常值检测:通过df.describe()统计价格分布,过滤价格低于成本价或高于市场均价3倍的记录。
  • 时间标准化:将购买时间列转换为datetime类型,提取小时、日期等特征。
  1. import pandas as pd
  2. df = pd.read_csv('double11_beauty.csv')
  3. df['购买时间'] = pd.to_datetime(df['购买时间'])
  4. df = df.dropna(subset=['品牌', '品类']) # 删除品牌或品类缺失的记录

1.2 数据聚合与特征工程

为分析品牌表现与品类趋势,需按品牌、品类分组计算关键指标:

  • 总销售额df.groupby('品牌')['价格'].sum()
  • 客单价df.groupby('品牌')['价格'].mean()
  • 转化率:假设存在曝光量数据,可计算销量/曝光量
  1. brand_sales = df.groupby('品牌').agg(
  2. 总销售额=('价格', 'sum'),
  3. 客单价=('价格', 'mean'),
  4. 销量=('价格', 'count')
  5. ).reset_index()

二、Pyecharts可视化实现

Pyecharts基于ECharts库,支持动态交互与多图表联动,适合展示销售数据的时空分布与关联关系。

2.1 品牌销售额TOP10柱状图

通过柱状图直观对比各品牌销售额,识别头部品牌与长尾效应。

  1. from pyecharts.charts import Bar
  2. from pyecharts import options as opts
  3. top_brands = brand_sales.sort_values('总销售额', ascending=False).head(10)
  4. bar = (
  5. Bar()
  6. .add_xaxis(top_brands['品牌'].tolist())
  7. .add_yaxis("销售额", top_brands['总销售额'].round(2).tolist())
  8. .set_global_opts(
  9. title_opts=opts.TitleOpts(title="双十一美妆品牌销售额TOP10"),
  10. yaxis_opts=opts.AxisOpts(name="销售额(万元)"),
  11. xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45))
  12. )
  13. )
  14. bar.render("brand_sales.html")

关键点

  • 使用rotate=45避免品牌名重叠。
  • 通过round(2)保留两位小数,提升可读性。

2.2 品类销售占比饼图

分析护肤、彩妆、香水的销售占比,辅助品类结构优化。

  1. from pyecharts.charts import Pie
  2. category_dist = df['品类'].value_counts(normalize=True)
  3. pie = (
  4. Pie()
  5. .add("", [list(z) for z in zip(category_dist.index, category_dist.values)])
  6. .set_global_opts(title_opts=opts.TitleOpts(title="美妆品类销售占比"))
  7. .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))
  8. )
  9. pie.render("category_pie.html")

优化建议

  • 若某品类占比过低(如<5%),可合并至“其他”类别。
  • 使用formatter自定义标签格式,显示百分比。

2.3 地域销售热力图

结合用户地域数据,通过地图热力图识别高潜力市场。

  1. from pyecharts.charts import Map
  2. from pyecharts.datasets import register_url
  3. # 假设数据已按省份聚合
  4. province_sales = df.groupby('省份')['价格'].sum().reset_index()
  5. map_chart = (
  6. Map()
  7. .add("销售额", [list(z) for z in zip(province_sales['省份'], province_sales['价格'])], "china")
  8. .set_global_opts(
  9. title_opts=opts.TitleOpts(title="双十一美妆地域销售分布"),
  10. visualmap_opts=opts.VisualMapOpts(max_=province_sales['价格'].max())
  11. )
  12. )
  13. map_chart.render("province_map.html")

注意事项

  • 需确保省份名称与Pyecharts内置地图匹配(如“内蒙古”需写为“内蒙古自治区”)。
  • 通过visualmap_opts设置颜色渐变范围。

三、高级分析:时间序列与关联规则

3.1 小时级销售趋势折线图

分析用户购买行为的时间分布,优化直播带货时段。

  1. from pyecharts.charts import Line
  2. hourly_sales = df.set_index('购买时间').resample('H')['价格'].sum().reset_index()
  3. line = (
  4. Line()
  5. .add_xaxis(hourly_sales['购买时间'].dt.strftime('%H:%M').tolist())
  6. .add_yaxis("销售额", hourly_sales['价格'].round(2).tolist())
  7. .set_global_opts(title_opts=opts.TitleOpts(title="双十一美妆小时级销售趋势"))
  8. )
  9. line.render("hourly_trend.html")

发现

  • 20:00-22:00为销售高峰,与平台满减活动时间重合。
  • 凌晨1:00-5:00销量最低,可减少该时段广告投放。

3.2 关联规则挖掘(Apriori算法)

通过mlxtend库分析商品共现关系,发现捆绑销售机会。

  1. from mlxtend.frequent_patterns import apriori
  2. from mlxtend.frequent_patterns import association_rules
  3. # 假设数据已转换为one-hot编码的购物篮格式
  4. basket = pd.get_dummies(df[['商品名称']].dropna()).groupby(df['订单ID']).max()
  5. frequent_itemsets = apriori(basket, min_support=0.01, use_colnames=True)
  6. rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1.5)

结果解读

  • 规则精华液 -> 面霜lift=2.3,表明购买精华液的用户购买面霜的概率是随机购买的2.3倍。
  • 可针对高lift值商品组合设计套餐。

四、实践建议与优化方向

  1. 数据质量提升

    • 接入实时数据流(如Kafka),实现动态可视化更新。
    • 增加用户画像字段(如年龄、性别),分析人群偏好。
  2. 可视化交互优化

    • 使用PyechartsTimeline组件实现多日期对比。
    • 添加图表联动功能(如点击饼图某品类,柱状图自动过滤该品类品牌)。
  3. 业务决策支持

    • 结合预测模型(如Prophet)预测下一周期销售趋势。
    • 对高潜力地域制定差异化营销策略(如三四线城市主推性价比套装)。

五、总结

本文通过Pandas完成数据清洗与聚合,利用Pyecharts实现多维度可视化,揭示了双十一美妆销售中的品牌竞争格局、品类结构、地域差异与时间规律。实际业务中,可进一步结合机器学习模型与实时数据,构建从数据洞察到决策落地的闭环体系。

代码与数据:完整代码与示例数据已上传至GitHub,回复“双十一美妆”获取链接。