You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pandas DataFrame中应用递归数字滤波器处理多时间序列

实现方案

你需要的是一阶指数平滑滤波效果,直接用pandas内置的ewm方法即可实现,矢量化计算效率高,完美适配多列批量处理需求。

完整代码示例

import pandas as pd

# 样例数据构造
days1 = pd.date_range('2020-01-01 01:00:00','2020-01-01 01:19:00',freq='60s')
DF = pd.DataFrame({
    'Time': days1,
    'TimeSeries1': [10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20],
    'TimeSeries2': [11, 12, 13, 12, 11, 14, 15, 16, 21, 20, 20, 23, 15, 15, 15, 15, 15, 15, 15, 15]
})

# 自定义配置:按顺序填写要处理的时序列,以及对应位置的滤波系数A
ts_cols = ["TimeSeries1", "TimeSeries2"]
A_list = [0.5, 0.8]

# 批量生成滤波后的列
for col, A in zip(ts_cols, A_list):
    DF[f"{col}_Filtered"] = DF[col].ewm(alpha=A, adjust=False).mean()

# 查看结果
print(DF.head(10))

代码说明

  • 只需修改ts_cols和A_list的内容,按顺序填入你要处理的时序列名、对应滤波系数A即可,支持上百列批量处理
  • ewm方法的alpha参数对应公式中的系数A,adjust=False参数严格匹配你给出的递归计算逻辑,计算结果和示例完全一致
  • 新生成的滤波列会自动添加_Filtered后缀,无需手动定义列名

内容的提问来源于stack exchange,提问作者User365Go

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:51:00