我有一个类似以下的数据框(下面是特定数据,这是通用的)。否给我累加的总和:
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/