df:
id cond1 a b c d
0 Q b 1 1 nan 1
1 R b 8 3 nan 3
2 Q a 12 4 8 nan
3 Q b 8 3 nan 1
4 R b 1 2 nan 3
5 Q a 7 9 8 nan
6 Q b 4 4 nan 1
7 R b 9 8 nan 3
8 Q a 0 10 8 nan
按id和cond1分组,然后滚动(2).sum():
df.groupby(['id','cond1']).apply(lambda x: x[x.name[1]].rolling(2).sum())
输出:
id cond1
Q a 2 nan
5 19.00000
8 7.00000
b 0 nan
3 4.00000
6 7.00000
R b 1 nan
4 5.00000
7 10.00000
dtype: float64
为什么输出以表格形式出现?可以采用序列形式并重新设置索引吗?
答案 0 :(得分:3)
您可以使用reset_index()
使groupby
对象回到dataframe