代码之家  ›  专栏  ›  技术社区  ›  Nickpick

将滚动窗口添加到列表中每行的列中

  •  0
  • Nickpick  · 技术社区  · 4 年前

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

    这意味着每行将有额外的6列,以及该列滚动窗口的相应编号。如何使用pandas的滚动功能,自动命名列[t-1,t-2,t-3…t-n],来实现这一点?

    1 回复  |  直到 4 年前
        1
  •  1
  •   Georgina Skibinski    4 年前

    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