如何获得动态滑动窗口 类似 rolling 中 window=b

data=pd.DataFrame({'a':[3.42,3.42,3.41,3.42 ,3.42,3.42,3.41,3.30,3.30,3.31,3.34],'b':[5,1,2,3,4,5,1,2,3,4,5]})
#rolling(window=?)
如何获取获得b的滑动窗口,类似window=b

import pandas as pd

data = pd.DataFrame({'a': [3.42, 3.42, 3.41, 3.42, 3.42, 3.42, 3.41, 3.30, 3.30, 3.31, 3.34],
                   'b': [5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]})

data['ni'] = range(len(data))
def fun(s):
    num1 = int(s.loc['b'])
    num2 = int(s.loc['ni'])
    return (data.iloc[0 if (num2 - num1) <
          0 else num2 - num1 + 1:num2 + 1, :].min())

data = data.apply(fun, axis = 1)
print(data[['a', 'b']])

img

问题描述不清,用一个指针加一个长度变量?


import pandas as pd
s = {'a':[3.42,3.42,3.41,3.42 ,3.42,3.42,3.41,3.30,3.30,3.31,3.34],'b':[5,1,2,3,4,5,1,2,3,4,5]}
pd.Series(s).rolling(window=b).mean()