如何在Python中实现指数移动平均?
时间: 2024-09-11 22:14:22 浏览: 51
指数加权移动平均平滑-Python实现
在Python中,你可以使用`ewm`(exponentially weighted moving average)函数来计算指数移动平均,它是pandas库中的内置功能。下面是一个简单的实现示例:
```python
from pandas import Series, DataFrame
import pandas as pd
def calculate_ewma(data, alpha, span):
"""
计算指数移动平均
:param data: 一个Series或DataFrame,包含要计算EWM的列
:param alpha: 衰减因子,通常小于1,如0.9
:param span: 窗口大小,即计算移动平均的周期数
:return: 新的Series,包含指数移动平均结果
"""
if isinstance(data, DataFrame):
return data.ewm(span=span, adjust=False, min_periods=1).mean() * (1 - alpha) + data.iloc[0] * alpha
else:
return pd.Series(data).ewm(span=span, adjust=False, min_periods=1).mean() * (1 - alpha) + data.iloc[0] * alpha
# 示例数据
data_series = Series([1, 2, 3, 4, 5])
ewma_result = calculate_ewma(data_series, 0.9, 3)
print(f"指数移动平均结果: {ewma_result.tolist()}")[^1]
阅读全文