我有一个类似以下的数据框(下面是特定数据,这是通用的)。否给我累加的总和:

                 no
name day
Jack Monday      10
     Tuesday     40
     Wednesday   90
Jill Monday      40
     Wednesday  150

我想“展开”累计金额,以便给我这样的东西:
print df
   name        day   no
0  Jack     Monday   10
1  Jack    Tuesday   30
2  Jack  Wednesday   50
3  Jill     Monday   40
4  Jill  Wednesday  110

本质上,我想执行以下操作,但相反:
Pandas groupby cumulative sum

最佳答案

如果我理解正确,则可以执行以下操作:

In [103]:
df.groupby(level=0).diff().fillna(df).reset_index()

Out[103]:
   name        day     no
0  Jack     Monday   10.0
1  Jack    Tuesday   30.0
2  Jack  Wednesday   50.0
3  Jill     Monday   40.0
4  Jill  Wednesday  110.0

因此,groupby为第一个索引级别,并调用diff以计算每组的行间差异,并用原始df值填充NaN值,然后调用reset_index

关于Python- Pandas -展开/删除累计金额,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36452024/

10-12 18:20