📅  最后修改于: 2023-12-03 15:26:08.624000             🧑  作者: Mango
在数据分析和统计中,移动平均值是一种常用的数据处理方法。它可以作为预测分析的一种手段,同时也可以用于去除数据中的噪音和突变。
Python 中,我们可以使用 pandas 数据框来实现 12 个月移动平均值的计算。下面是一个简单的 Python 代码片段,展示如何使用 pandas 实现这个功能。
import pandas as pd
# 创建一个包含日期和数据值的数据框
df = pd.DataFrame({'date': ['2021-01-01', '2021-02-01', '2021-03-01', '2021-04-01', '2021-05-01', '2021-06-01', '2021-07-01', '2021-08-01', '2021-09-01', '2021-10-01', '2021-11-01', '2021-12-01'],
'value': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120]})
# 将日期列转换为时间戳格式,并将其设置为数据框的索引
df['date'] = pd.to_datetime(df['date'])
df.set_index('date', inplace=True)
# 计算 12 个月移动平均值
mov_avg_12 = df.rolling(window=12).mean()
print(mov_avg_12)
代码解析:
首先,我们导入 pandas 库,并创建一个包含日期和数据值的数据框。
然后,我们使用 pd.to_datetime()
函数将日期列转换为时间戳格式,并使用 set_index()
函数将其设置为数据框的索引。
最后,我们使用 rolling()
函数和 mean()
函数计算 12 个月移动平均值。其中,rolling()
函数指定滑动窗口的大小,这里为 12,表示计算 12 个月的移动平均值;mean()
函数求解每个窗口的平均值。
运行以上代码,输出结果如下:
value
date
2021-01-01 NaN
2021-02-01 NaN
2021-03-01 NaN
2021-04-01 NaN
2021-05-01 NaN
2021-06-01 NaN
2021-07-01 NaN
2021-08-01 NaN
2021-09-01 NaN
2021-10-01 NaN
2021-11-01 NaN
2021-12-01 65.000000
可以看到,结果数据框的前 11 行为 NaN,因为这是由于计算移动平均值时需要滑动窗口,所以前 11 行无法计算。从第 12 行开始,每行的值就是对应 12 个月的移动平均值。
以上就是 Python 中计算数据框 12 个月移动平均值的简单介绍。希望这篇文章能对你有所帮助。