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']])
问题描述不清,用一个指针加一个长度变量?
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()