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

销售趋势分析

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 =<
### 数据分析中的异常检测与变化趋势方法 在数据分析领域,异常检测和变化趋势分析是非常重要的部分。以下是关于这些主题的方法和工具: #### 基于统计学的异常检测 基于统计学的异常检测通常利用数据的概率分布特性来识别异常点。常见的技术包括标准差法、箱线图(Boxplot)、Z分数等[^1]。 ```python import numpy as np def detect_anomalies_with_z_score(data, threshold=3): mean = np.mean(data) std_dev = np.std(data) anomalies = [] for value in data: z_score = (value - mean) / std_dev if abs(z_score) > threshold: anomalies.append(value) return anomalies ``` #### 机器学习方法 机器学习提供了丰富的异常检测手段,适用于各种规模的数据集。监督学习方法如逻辑回归和支持向量机可以在有标签的情况下表现良好。而对于无标签的情况,则可考虑使用无监督学习方法,例如孤立森林(Isolation Forest)或局部离群因子(LOF)。此外,针对时间序列数据,Prophet是一种有效的时序异常检测工具[^2]。 ```python from sklearn.ensemble import IsolationForest def isolate_forest_anomaly_detection(data): clf = IsolationForest(contamination=0.1) predictions = clf.fit_predict(data.reshape(-1, 1)) return [data[i] for i in range(len(predictions)) if predictions[i] == -1] ``` #### 半自动化策略 由于实际应用中可能存在复杂的业务场景,仅依靠模型可能无法满足需求。因此推荐结合人工规则与模型预测形成半自动化的解决方案。这种方法尤其适合处理那些具有动态特性的异常情况,例如随着时间推移不断演变的新模式。 #### 变化趋势分析 对于变化趋势的捕捉,除了传统的移动平均线外,还可以借助ARIMA模型或者Facebook开发的时间序列库Prophet来进行更精确的趋势建模和异常发现。 ```python from fbprophet import Prophet def prophet_trend_analysis(df): model = Prophet() model.fit(df.rename(columns={'ds': 'date', 'y': 'value'})) future = model.make_future_dataframe(periods=365) forecast = model.predict(future) return forecast[['ds', 'trend']] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dotdotyy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值