数分基础(02)销售趋势分析

news2024/9/24 19:18:17

文章目录

  • 销售趋势分析
  • 1. 数据集
  • 2. 销售趋势
  • 3. 步骤
    • 3.1 数据读取与预处理:
    • 3.2 计算按月、季度、年度的总销售额
  • 4. 分析工具:Python 或 Excel
  • 5. Python
    • 5.1 Global_Superstore2.xlsx 文件位置
    • 5.2 读取数据集并检查其基本信息
    • 5.3 绘制趋势图来观察销售额的变化
    • 5.4 季节性分析
    • 5.5 销售趋势
  • 6. EXCEL
    • 6.1 数据读取与预处理
    • 6.2 检查数据
    • 6.3 按月、季度、年度的销售额
    • 6.4 季节性分析

销售趋势分析

1. 数据集

数据集见 数分基础(01)示例数据集Global_Superstore

2. 销售趋势

分析不同时期的销售额趋势,例如按月、季度或年度,观察销售的季节性或增长模式。

3. 步骤

3.1 数据读取与预处理:

读取数据集并检查其基本信息
解析日期列、创建额外的时间维度(如月份、季度、年份等)

3.2 计算按月、季度、年度的总销售额

绘制趋势图来观察销售额的变化
观察每年中不同月份或季度的销售额分布,确定是否存在季节性影响

4. 分析工具:Python 或 Excel

5. Python

5.1 Global_Superstore2.xlsx 文件位置

放到Jupyter默认文件夹下,一般默认安装的位置在这里
在这里插入图片描述

5.2 读取数据集并检查其基本信息

解析日期列、创建额外的时间维度(如月份、季度、年份等)

import pandas as pd

# 读取Excel数据
file_path = 'Global_Superstore2.xlsx'
df = pd.read_excel(file_path)

# 查看数据的基本信息
df.info()

# 解析日期列,并创建年月、季度、年份等时间维度
df['Order Date'] = pd.to_datetime(df['Order Date'], dayfirst=True)
df['Year'] = df['Order Date'].dt.year
df['Month'] = df['Order Date'].dt.month
df['Quarter'] = df['Order Date'].dt.to_period('Q')

‘to_period()’是Pandas的一个方法,这里,将日期列’Order Date’中的每个日期转换为该日期所属的季度。假设 Order Date 是 “2024-08-24”,那么“to_period()”会将其转换为“2024Q3”,表示2024年的第三季度。

常见用法:
to_period(‘M’):将日期转换为月份,例如 “2024-08”。
to_period(‘A’):将日期转换为年份,例如 “2024”。

运行上述代码,显示数据集的基本信息如下
在这里插入图片描述

5.3 绘制趋势图来观察销售额的变化

import matplotlib.pyplot as plt

# 按年度分析销售额
annual_sales = df.groupby('Year')['Sales'].sum()

# 按季度分析销售额
quarterly_sales = df.groupby('Quarter')['Sales'].sum()

# 按月分析销售额
monthly_sales = df.groupby(['Year', 'Month'])['Sales'].sum().unstack() # unstack()在代码后解释

# 绘制年度销售趋势图
plt.figure(figsize=(10, 6))
annual_sales.plot(marker='o')
plt.title('Annual Sales Trend')
plt.xlabel('Year')
plt.ylabel('Total Sales')
plt.xticks(annual_sales.index, [int(year) for year in annual_sales.index])  # 设置整数年份
plt.grid(True)
plt.show()

# 绘制季度销售趋势图
plt.figure(figsize=(10, 6))
quarterly_sales.plot(marker='o', color='orange')
plt.title('Quarterly Sales Trend')
plt.xlabel('Quarter')
plt.ylabel('Total Sales')
plt.xticks(rotation=45)  # 适当旋转季度标签,以便更好地显示
plt.grid(True)
plt.show()

# 绘制月度销售趋势图
plt.figure(figsize=(10, 6))
monthly_sales.T.plot(marker='o')
plt.title('Monthly Sales Trend')
plt.xlabel('Month')
plt.ylabel('Total Sales')
plt.xticks(rotation=45)  # 适当旋转月份标签
plt.grid(True)
plt.show()

unstack()
是 Pandas 中的一个方法,用于将 DataFrame 的行索引转换为列索引。

monthly_sales = df.groupby([‘Year’, ‘Month’])[‘Sales’].sum().unstack() 首先通过 groupby([‘Year’, ‘Month’]) 将数据按年和月分组,然后计算每个分组的总销售额(sum())。

得到的结果是一个多层索引的 Series,其中行索引是 (Year, Month),每个组合对应一个总销售额值。

unstack() 会将其中一层行索引(默认是最内层)转换为列索引。这样,年份(Year)仍作为行索引,月份(Month)则被展开为不同的列。

假设你有以下分组后的数据

Year  Month
2023  1       500
      2       600
2024  1       700
      2       800
Name: Sales, dtype: int64

使用 unstack() 后的结果会是:

Month    1    2
Year            
2023   500  600
2024   700  800

前面d Python运行结果如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.4 季节性分析

分析每年中不同月份或季度的销售额分布,观察是否存在季节性影响

# 计算每个月的平均销售额(跨年度)
average_monthly_sales = df.groupby('Month')['Sales'].mean()

# 绘制平均月度销售额趋势图
plt.figure(figsize=(10, 6))
average_monthly_sales.plot(marker='o', color='green')
plt.title('Average Monthly Sales Trend')
plt.xlabel('Month')
plt.ylabel('Average Sales')
plt.grid(True)
plt.show()

# 计算每个季度的平均销售额(跨年度)
df['Quarter_Only'] = df['Order Date'].dt.quarter
average_quarterly_sales = df.groupby('Quarter_Only')['Sales'].mean()

# 绘制平均季度销售额趋势图
plt.figure(figsize=(10, 6))
average_quarterly_sales.plot(marker='o', color='purple')
plt.title('Average Quarterly Sales Trend')
plt.xlabel('Quarter')
plt.ylabel('Average Sales')
plt.grid(True)
plt.show()

运行结果如下
在这里插入图片描述
在这里插入图片描述

5.5 销售趋势

  • 每年的销售额变化表明整体的销售表现逐年提升,可能市场份额在扩大

  • 每年的季度销售趋势,观察到每个季度的销售表现出逐季度上升,每个第四季度的销售额都显著高于其他季度,每个一季度都较低,表明可能存在季节性销售高峰,可能与假日季节或促销活动有关。

  • 每年每月的销售额波动趋势基本一致,在某些月份内出现较大的波动,例如7-8,10-11,这可能反映出市场需求的波动性,或者是季节性因素的影响。

  • 平均月度、季度销售额(跨年度)
    从平均月度销售额图表中可以看出,1-4波动下降,4-12波动上升,平均季度销售额也呈现了第一季度下降,后三季度上升,第四季度和第一季度的前一半的销售额显著较高。可能存在季节性高峰期,例如假期购物季(如圣诞节、感恩节等),销售额显著增加,年终假期对销售额有显著的提升作用。

对于营销策略和库存管理具有参考作用,可以在关键的销售高峰期到来前做出资源分配决策。

6. EXCEL

在Excel中,通过数据整理、透视表、图表等基本功能也可以完成。并且Excel的透视表和图表的好处是可以快速分析和可视化。

6.1 数据读取与预处理

在Excel中打开你提供的数据文件 Global_Superstore2.xlsx。

6.2 检查数据

查看数据中的日期列(通常是“Order Date”)
添加年度列,提取年份。
在这里插入图片描述
添加月份列,提取月份
在这里插入图片描述
添加季度列,计算季度
在这里插入图片描述

6.3 按月、季度、年度的销售额

创建透视表
年度销售额
选择整个数据区域,点击“插入”->“透视表”。
将“Year”拖到行标签,"Sales"拖到值。生成每年总销售额的透视表,将默认的柱形图改为折线图
将“Quarter”拖到行标签,"Sales"拖到值,将生成每个季度总销售额的透视表。
在透视表中,将“Year”和“Month”都拖到行标签,将“Sales”拖到值,生成每年每月的销售额。
在这里插入图片描述

6.4 季节性分析

创建平均月度销售额分析,新的透视表,选择“Month”作为行标签,“Sales”作为值,并将“值字段设置”设置为“平均值”。生成每个月的平均销售额,折线图
创建平均季度销售额分析,使用“Quarter”作为行标签,“Sales”作为值,并将“值字段设置”设置为“平均值”,折线图

通过图表观察年度、季度、月度销售额的趋势,分析可能的增长模式和季节性影响。

可以在Excel中完成与Python类似的销售趋势分析和季节性分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2070741.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

掌握C语言文件操作

1. 什么是文件 磁盘上的文件就是文件。 然而在程序设计中,我们所谈的文件有两种,一种是程序文件,另一种是数据文件(从文件功能的角度来分类的) 文件名 一个文件要有一个唯一的文件标识,以便用户识别和引用…

金蝶云星空开发简单账表《物料年采购入库报表》

文章目录 业务背景业务需求方案设计详细设计测试业务背景 系统现有功能不支持查询过去一年内所有物料的入库数,需要人工导出,然后再汇总。 业务需求 可以查询所有物料的入库数,多个物料,单个物料,多个组织,单个组织的入库数,以及支持查询入库数大于某个阈值。 方案设…

燃气灶行业分析、淘宝平台销售分析

内容:1.燃气灶(不含集成灶)整体行业分析 2.淘宝平台销量分析 3.针对性建议(涉及商业信息就略) 一、基本情况 (一)产品定义: 以液化石油气(液态)、人工煤…

DRF——router路由,parser解析器

文章目录 路由解析器1.JSONParser2.FormParser3.MultiPartParser4.FileUploadParser 路由 在之前进行drf开发时,对于路由我们一般进行两种配置: 视图继承APIView from django.urls import path from app01 import viewsurlpatterns [path(api/users/, …

趣味算法------尾部零的个数(C语言,python双重解法)

目录 题目描述&#xff1a; 解题思路&#xff1a; 具体代码&#xff1a; 注意&#xff1a; 题目描述&#xff1a; 给出数字 n(0<n<1000000)&#xff0c;计算出 n 阶乘尾部零的个数。 输入输出格式 输入格式 一个整数。 输出格式 一个整数。 输入输出样例 输入 11 输…

技术分享-商城篇-用户订单管理(十五)

前言 在前面的文章中&#xff0c;我们详细阐述了商品模块、购物模块、支付模块等B2B2C&#xff08;Business-to-Business-to-Consumer&#xff09;电商中核心基础模块&#xff0c;接下来我们来聊一下基础模块中最后一个环节订单模块&#xff0c;订单模块属于购物体系闭环内容&…

C语言典型例题50

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 例题4.2 使用do……while语句循环求1234……100&#xff1b; 代码&#xff1a; //《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 //例题4.2 使用do……while语句循环求1234……100&#xff1b;#incl…

Axure RP实战:打造高效滑块验证码

Axure RP在验证码设计中的应用(滑块拖动) 前言 在数字化时代&#xff0c;验证码已成为保护用户账户安全和防止恶意攻击的重要工具。 它不仅提高了系统的安全性&#xff0c;还增加了用户对平台的信任度。 然而&#xff0c;验证码的设计并非易事&#xff0c;它需要在安全性和…

适用于 Windows 10 的最佳数据恢复免费软件是什么?

有没有适用于 Windows 10 的真正数据恢复免费软件&#xff1f;这篇文章将讨论这个话题&#xff0c;并分享什么是适用于 Windows 10/11/8.1/8/7/Vista/XP 的最佳数据恢复工具。 有没有适用于 Windows 10 的真正免费的数据恢复软件&#xff1f; 丢失重要数据&#xff0c;无论是由…

C++调用Python和numpy第三方库计算MFCC音频特征实现封装发布

文章目录 项目简介环境准备执行步骤1.新建python虚拟环境2.虚拟环境运行下python代码3.迁移虚拟环境4.编写Cmakelists.txt5.编写C代码6.编译项目7.测试 项目简介 深度学习程序的边缘部署以性能绝佳的C为主(⊙﹏⊙)&#xff0c;但遇到项目开发周期短&#xff0c;则以功能优先&am…

五、Centos7-安装Jenkins--吃灰去吧

克隆了一个base的虚拟机&#xff0c;用来安装Jenkins 2023年11月&#xff0c;Jenkins不支持centos7了。我们只是学习用&#xff0c;先看看吧。 &#xff08; 另一个人用别的操作系统安装的jenkins&#xff0c;可以参考 版权声明&#xff1a;本文为博主原创文章&#xff0c;…

mq可靠性

为了解决阻塞可以采用数据持久化 交换机持久化-可以在配置的时候配置durable 队列持久化-mq在设置时默认就是持久化&#xff0c;spring默认也是持久化 消息持久化&#xff0c;不是默认&#xff0c;需要在发送时对delivery_mode改为2&#xff08;持久&#xff09;&#xff0c;默…

系统架构师(每日一练23)

每日一练 1.软件活动主要包括软件描述、()、软件有效性验证和()&#xff0c;()定义了软件功能及使用限制。答案与解析 问题1 A.软件模型 B.软件需求 C.软件分析 D.软件开发 问题2 A.软件分析 B.软件测试 C.软件演化 D.软件开发 问题3 A.软件分析 B.软件测试 C.软件描述 D.软…

事件监听查看、监听器删除方法

前言 最近在开发过程中遇上了不知在哪加入的点击事件&#xff0c;导致页面跳转发生问题&#xff0c;需要找到该点击事件并将其取消掉。以下就是在完成该目标过程中使用、尝试的方法。 1、事件查看 使用网页开发者工具&#xff08;F12&#xff09;选取想查看的元素找到工具中…

03_React 收集表单数据和 组件生命周期

React 收集表单数据和 组件生命周期 一、收集表单数据1、例子1.1 需求&#xff1a;定义一个包含表单的组件&#xff0c;输入用户名密码后&#xff0c;点击登录提示输入信息 2、理解&#xff1a;包含表单的组件分类2.1 受控组件2.2 非受控组件 二、高阶函数\_函数柯里化1、复习-…

MATLAB 手动实现点云投影滤波器 (76)

点云投影到邻近的精确拟合平面,减少噪声点,此为投影滤波器 MATLAB 手动实现点云投影滤波器(76) 一、投影滤波器简介二、实现步骤二、算法实现1.代码2.效果这里用到的投影方法和平面拟合方法以及生成平面方法都在以往文章有所实现,有兴趣可参考: MATLAB点云处理总目录 一…

Paimon Flink本地读取数据报错

1.idea本地读取paimon 用idea在本地读取paimon的表时需要添加的依赖除了官网提出的和hadoop相关的&#xff0c;paimon-flink之类相关的除外还需要其他额外依赖 import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.tabl…

大模型从入门到精通——词向量及知识库介绍

词向量及知识库介绍 1.词向量 1.1 什么是词向量 词向量是一种将单词表示为实数向量的方式。每个单词通过一个高维向量来表示&#xff0c;向量的每一维都是一个实数&#xff0c;这些向量通常位于一个高维空间中。词向量的目标是将语义相似的单词映射到相邻的向量空间中&#…

【STM32 HAL】多串口printf重定向

【STM32 HAL】多串口printf重定向 前言单串口printf重定向原理实现CubeMX配置Keil5配置 多串口printf重定向 前言 在近期项目中&#xff0c;作者需要 STM32 同时向上位机和手机发送数据&#xff0c;传统的 printf 重定向只能输出到一个串口。本文介绍如何实现 printf 同时输出…

回归预测|基于北方苍鹰优化混合核极限学习机的数据预测Matlab程序NGO-HKELM 多特征输入单输出

回归预测|基于北方苍鹰优化混合核极限学习机的数据预测Matlab程序NGO-HKELM 多特征输入单输出 文章目录 前言回归预测|基于北方苍鹰优化混合核极限学习机的数据预测Matlab程序NGO-HKELM 多特征输入单输出 一、NGO-HKELM 模型1. NGO&#xff08;北方苍鹰优化算法&#xff09;2. …