文章目录
- 销售趋势分析
- 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类似的销售趋势分析和季节性分析