如何在Pandas数据框架中计算MOVING AVERAGE

  • Post category:Python

要计算Pandas数据框架中的移动平均(moving average),可以采用rolling函数。rolling函数可以创建窗口对象,该窗口对象可以对数据进行滑动窗口计算,例如计算平均值、标准差等。

具体步骤如下:

  1. 导入Pandas模块,并读取数据到数据框架中。
import pandas as pd

data = pd.read_csv('data.csv')
  1. 创建Rolling对象,并计算移动平均值
# 设置窗口大小为5
rolling = data['col_name'].rolling(window=5)

# 计算移动平均值
ma = rolling.mean()

其中,’col_name’是数据框架中要计算移动平均的列名,window参数指定滑动窗口大小。

  1. 将移动平均的结果添加到原始数据框架中
data['MA'] = ma

其中,’MA’是新添加的列名,ma是移动平均的结果。

举个例子,假设data.csv中的数据如下:

date,price
2021-01-01,10
2021-01-02,12
2021-01-03,14
2021-01-04,16
2021-01-05,18
2021-01-06,20
2021-01-07,22
2021-01-08,24

要计算price列的5天移动平均值,可以按以下方式进行:

import pandas as pd

data = pd.read_csv('data.csv')

rolling = data['price'].rolling(window=5)
ma = rolling.mean()

data['MA'] = ma

print(data)

输出结果如下:

         date  price    MA
0  2021-01-01     10   NaN
1  2021-01-02     12   NaN
2  2021-01-03     14   NaN
3  2021-01-04     16   NaN
4  2021-01-05     18  14.0
5  2021-01-06     20  16.0
6  2021-01-07     22  18.0
7  2021-01-08     24  20.0

可以看到,新添加的MA列显示的是5天移动平均值。由于前面四天的数据无法计算移动平均值,因此显示为NaN。