Python 分组滚动平均数
我有一系列的表格:Python 分组滚动平均数,python,pandas,Python,Pandas,我有一系列的表格: Contract Date 196012 1960-01-05 110.70 1960-01-07 110.70 1960-01-08 110.40 1960-01-11 110.00 1960-01-12 109.60 1960-01-13 109.70 1960-01-14 109.50
Contract Date
196012 1960-01-05 110.70
1960-01-07 110.70
1960-01-08 110.40
1960-01-11 110.00
1960-01-12 109.60
1960-01-13 109.70
1960-01-14 109.50
1960-01-15 109.60
1960-01-18 109.60
1960-01-19 110.20
1960-01-20 110.00
1960-01-21 110.30
1960-01-22 110.00
1960-01-25 109.50
1960-01-26 109.60
1960-01-28 109.70
1960-01-29 110.00
1960-02-01 109.60
1960-02-02 109.60
1960-02-03 109.60
1960-02-04 110.10
1960-02-05 110.20
1960-02-08 110.20
1960-02-09 110.50
1960-02-10 110.10
1960-02-11 109.50
1960-02-12 110.40
1960-02-15 110.00
1960-02-16 109.50
1960-02-17 110.00
...
201812 2016-06-29 403.00
2016-06-30 398.00
2016-07-01 404.25
2016-07-05 402.00
2016-07-06 394.00
201912 2015-12-16 417.00
2015-12-17 415.00
2015-12-23 416.00
其中索引是分层多索引。我想对每个合同应用一个滚动窗口平均值,并将结果保存到一个新列
正确的方法是什么?您想分组方式(级别=0)
然后滚动(n).mean()
如果希望滚动平均值是同一数据帧中的新列:
df['rolling\u mean']=df.groupby(level=0).rolling(window\u size).mean().值
也许可以看出,问题不在于滚动平均值,而在于组/多索引是棘手的部分。合同
级别重复。您可以使用t.index=t.index.droplevel(0)
对其进行重复数据消除,其中t
是您的groupby
的结果。
s.groupby(level=0).rolling(10).mean()