鑒于此數據框: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
提交
取消