跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python算法

基于 Python 的商品销售数据分析与可视化实战

利用 Python pandas 库处理商品销售明细表,完成数据清洗、异常值检测及毛利额计算。通过 value_counts 统计热销商品类别及细分单品,结合 matplotlib 绘制柱状图可视化销售分布。进一步分析特定商品的销售地区差异,识别东西部市场特征。最后按月份聚合毛利额并计算环比增长率,定位利润下滑时段及品类,为业务决策提供数据支撑。

禅心发布于 2026/3/16更新于 2026/10/975 浏览
基于 Python 的商品销售数据分析与可视化实战

一、引言

利用 Python 及 pandas 库对商品销售明细表进行分析,并实现从表格到图表的可视化,展示工具在商业分析中的便捷性与灵活性。

二、数据预处理

拿到数据后先进行基础清理。虽然 Excel 能直接打开 xlsx 文件,但为了后续自动化处理,我们直接在 Python 中加载数据集。

这是一个包含 40514 行、12 列的数据集。我们先查看基本信息,包括行列数、数据类型及空值情况:

import pandas as pd

df = pd.read_excel('销售明细表.xlsx')
print(df.info())

由于数据集中涉及成本、销售额和数量等数值字段,我们需要检查是否存在异常值(如小于 0 的情况):

errorcb = df[df.loc[:, '成本额'] < 0]
errorsl = df[df.loc[:, '销售额'] < 0]
errorxse = df[df.loc[:, '销售成本'] < 0]

print(f'成本额异常值有{errorcb.shape[0]}条,分别在第{errorcb.index.tolist()}行')
print(f'销售额异常值有{errorsl.shape[0]}条,分别在第{errorsl.index.tolist()}行')
print(f'销售成本异常值有{errorxse.shape[0]}条,分别在第{errorxse.index.tolist()}行')

检查结果显示一切正常,可以进行下一步。注意到数据集中只有销售额和成本额,缺少毛利额,我们可以直接增加这一列:

df.loc[:, '毛利额'] = df.loc[:, '销售额'] - df.loc[:, '成本额']
df.to_excel('销售明细表_清洗后.xlsx', index=False)

添加完成后,即可正式开始分析。

三、数据分析

3.1 热销商品分析

首先对商品的销售情况进行宏观分析。利用 value_counts 函数可以快速统计各类商品的销量分布:

print(f'各类商品销售情况如下:\n{df.loc[:, "商品类别"].value_counts()}')

数据显示日用品远高于其他种类。进一步细分日用品下的具体商品名称:

print(f'日用品里不同商品的销售情况如下:\n{df[df.loc[:, "商品类别"] == "日用品"].loc[:, "商品名称"].value_counts()}')

结果发现'微爽日用'占了一半以上的订单量,建议将资源倾斜于此产品或同种产品。

为了更直观地感受差距,我们可以使用 matplotlib 生成图表:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体为黑体
plt.rcParams['axes.unicode_minus'] = False    # 解决负号显示问题

df = pd.read_excel('销售明细表_清洗后.xlsx')
plt.figure(figsize=(10, 6))
plt.subplot(1, 2, 1)
df.loc[:, '商品类别'].value_counts().plot(kind='bar', title='商品类别销售情况')
plt.subplot(1, 2, 2)
df[df.loc[:, '商品类别'] == '日用品'].loc[:, '商品名称'].value_counts().plot(kind='bar', title='日用品商品名称销售情况')
plt.tight_layout()
plt.show()

3.2 热门商品热销地区

了解热门商品后,分析其销售地区有助于规划进货发货。以'微爽日用 245mm'为例:

print(f'微爽日用 245mm 的销售地区情况如下:\n{df[df.loc[:, "商品名称"] == "微爽日用 245mm"].loc[:, "省份"].value_counts()}')

数据显示不同省份差异极大,且主要与经度有关,东部地区明显销售量大于西部,初步考虑是经济和气候因素影响。

3.3 各月毛利额分析

接下来对毛利额的时间趋势进行分析。我们需要先将日期转换为 datetime 格式,再提取月份进行分组汇总:

df['日期 (年月日)'] = pd.to_datetime(df['日期 (年月日)'])
df.loc[:, '月份'] = df.loc[:, '日期 (年月日)'].dt.month
monthly_profit = df.groupby('月份')['毛利额'].sum().sort_index()

print(f'各月毛利额如下:\n{monthly_profit}')

# 计算环比增长率
monthly_growth = (monthly_profit - monthly_profit.shift(1)) / monthly_profit.shift(1) * 100
print(f'\n各月环比增长率如下:\n{monthly_growth}')

结果显示从七月份开始下滑,八月份对比七月份严重下滑。为了定位原因,我们查看每个月不同商品的毛利额:

result = df.groupby(['月份', '商品类别'])['毛利额'].sum().unstack()
print(f'各月各类商品毛利额如下:\n{result}')

可以发现 7 到 8 月份下跌严重主要是因为零食这一类造成的,可以深入调查一下零食的售卖情况。

目录

  1. 一、引言
  2. 二、数据预处理
  3. 三、数据分析
  4. 3.1 热销商品分析
  5. 3.2 热门商品热销地区
  6. 3.3 各月毛利额分析
  7. 计算环比增长率

更多推荐文章

查看全部
  • LightRAG 本地部署与 WebUI 应用指南
  • IDEA 插件 Trae AI 实战指南:从安装到进阶
  • MySQL 事务的核心概念与 ACID 属性详解
  • openGauss 向量数据库能力与 RAG 应用场景解析
  • 基于 LangGraph 构建带记忆与人工干预的智能搜索机器人
  • 前端 JS 加载失败处理方案:重试与多源备份策略
  • Python 爬虫实战:爬取汽车之家车型与报价数据
  • 医疗 Co-MAPF 的 Python 工程实现思路
  • 长亭雷池 WAF 部署与实战:Web 安全防护高频场景指南
  • AI 世界模型技术原理、研究进展与产业落地
  • 利用 Fiddler 代理抓包 JVM 发出的 HTTP 请求
  • C++高性能事件循环库libev封装实战
  • RoboChallenge 具身智能年度报告:4 万次真机评测揭示模型真实水平
  • 渗透测试基础概念、流程与内网渗透技术详解
  • 渐进式 AIGC 系统架构与功能特性:支持多模态大模型与 Agent 智能体
  • 基础算法核心模板指南:快速排序、归并排序与二分查找等
  • Python 代码打包为 EXE 完全指南
  • Quilter:把 PCB 设计交给物理驱动的 AI
  • 数据结构 (Java):单链表概念与基础实现
  • Jetson 部署 OpenClaw 接入飞书机器人实现本地 AI 助手

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online