【问题标题】:How to do the pandas.rolling with "stride" in python?如何在 python 中使用 \"stride\" 进行 pandas.rolling?
【发布时间】:2022-11-18 21:37:01
【问题描述】:

我想将滚动窗口功能与“步幅”一起使用。
这意味着,步骤仍然是 1。
但是我们可以以一定的间隔对索引进行重新采样,而不仅仅是 1。
你知道吗?非常感谢。

例如:

df:  
  row0: 0  
  row1: 1  
  row2: 2  
  row3: 3  
  row4: 4  
  row5: 5  
  row6: 6   
  row7: 7  
  row8: 8  
  row9: 9   
  ...  

df1 = df.rolling(window=3, stride=3).sum() (where stride is not exist in pd.rolling)  
df1:   
  row0: nan  
  row1: nan  
  row2: nan  
  row3: nan  
  row4: nan   
  row5: nan  
  row6: 9 (row6+row3+row0)  
  row7: 12 (row7+row4+row1)    
  row8: 15 (row8+row5+row2)    
  row9: 18 (row9+row6+row3)     
  ...   

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    我想在这种情况下你不会真正使用rolling,而是shift

    out = df.shift(2).add(df)
    

    输出:

          col
    row0  NaN
    row1  NaN
    row2  2.0
    row3  4.0
    

    【讨论】:

    • 它只适合 window=2,但在我的情况下,窗口不仅是 2。但仍然感谢
    • 你能提供另一个更复杂的例子吗?
    • 你好,检查编辑。
    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 2015-11-18
    • 1970-01-01
    • 2020-08-02
    • 1970-01-01
    • 2013-05-06
    • 2018-12-29
    • 1970-01-01
    相关资源
    最近更新 更多