首页 > 解决方案 > 将滚动窗口添加到熊猫中每一行的列

问题描述

我在数据框中有一个时间序列,并且想将窗口大小为 n 的滚动窗口添加到每一行。

df['A'].rolling(window=6)

这意味着每行将有额外的 6 列,其中包含该列的滚动窗口的相应编号。如何使用熊猫的滚动功能实现这一点,自动命名列 [t-1, t-2, t-3...tn]?

标签: pythonpandas

解决方案


df.shift(n)是你要找的:

n = 6 # max t-n
for t in range(1, n+1):
    df[f'A-{t}'] = df['A'].shift(t)

参考。https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.shift.html


推荐阅读