鉴于此数据框:df = pd.DataFrame({ 'id_val' : [1,2,3,4,5] , 'c1': [1.0 , 2.0, 3.0,4.0,5.0]})我试图返回 c1 行的每 2 个值的滑动窗口的均值,没有重叠:[1,2] , [3,4] , [5]=的平均值[1.5 , 3.5, 5 ]df.rolling(2)['c1'].mean()[1::2]回报:我认为这意味着采用大小为 2 的滚动窗口,计算“c1”的平均值,[1::2]意味着从第二行开始并每隔一行返回一次。这个对吗 ?为了返回 [5] 这是最后一行的平均值,我可以为数据帧返回 c1 的最后一个值,但这看起来很笨重,有没有更干净的方法?
1 回答

慕田峪7331174
TA贡献1828条经验 获得超13个赞
这种方式呢:
df.groupby(pd.cut(df['c1'],[0,2,4,6]))['c1'].mean().reset_index(drop=True)
结果是 :
0 1.5
1 3.5
2 5.0
Name: c1, dtype: float64
添加回答
举报
0/150
提交
取消