Python / Pandas 运行总计
我有一个这样的 pandas 数据框:
Date BrokenRule Cost
2014-01-01 abc 100
2014-01-02 xyz 50
2014-01-03 abc 40
2014-01-04 xyz 70
2014-01-05 xyz 10
我需要计算每个 BrokenRule
的累计 Cost
总额,然后将其绘制成折线图。
如果我要计算所有 BrokenRule
的累计总额,我只需要用 cumsum()
就可以了。但是我似乎找不到方法来显示每个 BrokenRule
的累计总额。也许可以把 cumsum()
和 groupby()
一起使用,但我一直没能成功。
有什么建议吗?谢谢
1 个回答
3
这段代码
df.set_index("BrokenRule", append=True).unstack().fillna(0).cumsum()
运行后得到的结果是
Cost BrokenRule abc xyz Date 2014-01-01 100 0 2014-01-02 100 50 2014-01-03 140 50 2014-01-04 140 120 2014-01-05 140 130
通过把新加的 BrokenRule
索引层展开,我们为每个不同的值创建了一列。先用零填充,然后默认按列进行 cumsum
操作,这样就能得到我们希望的结果。