小编nav*_*ari的帖子

在 Dataframe 中的滚动窗口上应用一个函数,其中整个数据帧被传递给函数

我有一个由 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也没有任何作用......

python apply dataframe pandas

6
推荐指数
1
解决办法
4795
查看次数

标签 统计

apply ×1

dataframe ×1

pandas ×1

python ×1