熊猫滚动总和

时间:2020-04-20 13:50:56

标签: python pandas pandas-groupby rolling-computation

我有一只熊猫dataframe

df = pd.DataFrame(data={'Name':['John', 'John', 'John', 'Jill', 'Jill', 'Jill', 'Jill'],'Score':[1,1, 1,2,2, 2, 2]})

df
Out[168]: 
   Name  Score
0  John      1
1  John      1
2  John      1
3  Jill      2
4  Jill      2
5  Jill      2
6  Jill      2

我想添加一列,其中包含前2个值的滚动总和(如列score),如下所示:

Out[171]: 
   Name  Score  Total
0  John      1      1
1  John      1      2
2  John      1      2
3  Jill      2      2
4  Jill      2      4
5  Jill      2      4
6  Jill      2      4

我尝试了groupbyrolling的工作原理,但行顺序与原始dataframe不同。请注意,Jill现在是第一个出现的原因,可能是由于某些字母排序所致:


df.groupby('Name')['Score'].rolling(2, min_periods=1).sum()
Out[173]: 
Name   
Jill  3    2.0
      4    4.0
      5    4.0
      6    4.0
John  0    1.0
      1    2.0
      2    2.0
Name: Score, dtype: float64

这是如何工作的,如何在不进行leftjoin /之后合并的情况下实现目标?

0 个答案:

没有答案