我有一个由 YearMo 索引的 5 列数据框:
yearmo = np.repeat(np.arange(2000, 2010) * 100, 12) + [x for x in range(1,13)] * 10
rates = pd.DataFrame(data=np.random.random(120, 5)),
index=pd.Series(data=yearmo, name='YearMo'),
columns=['A', 'B','C', 'D', 'E'])
rates.head()
YearMo A B C D E
200411 0.237696 0.341937 0.258713 0.569689 0.470776
200412 0.601713 0.313006 0.221821 0.720162 0.889891
200501 0.024379 0.761315 0.225032 0.293682 0.302431
200502 0.996778 0.388783 0.026448 0.056188 0.744850
200503 0.942024 0.768416 0.484236 0.102904 0.287446
Run Code Online (Sandbox Code Playgroud)
我想要做的是能够应用滚动窗口并将所有五列传递给一个函数——例如:
rates.rolling(window=60, min_periods=60).apply(lambda x: my_func(data=x, param=5)
Run Code Online (Sandbox Code Playgroud)
但是这种方法将函数应用于每一列。指定axis=1也没有任何作用......