[英]pandas dataframe rolling window with groupby
我可以添加一個新列c
,該列c
是b
最后兩個值的和,如下所示...
df['c'] = df.b.rolling(window = 2).sum().shift()
df
a b c
0 1 3 NaN
1 1 0 NaN
2 0 6 3.0
3 1 0 6.0
4 0 0 6.0
5 1 7 0.0
6 0 0 7.0
7 0 7 7.0
8 1 4 7.0
9 1 2 11.0
......不過,如果我想要什么組由a
第一? 例如,我可以這樣做:
df['c'] = df.groupby(['a'])['b'].shift(1) + df.groupby(['a'])['b'].shift(2)
是否有一種更優雅的方法來匯總一組中的大量班次(1、2,... n)?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.