Python / Pandas总计运行

时间:2014-10-23 09:19:22

标签: 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

我需要计算每个Cost的运行BrokenRule总计,然后将其绘制为线图。

如果我要计算所有BrokenRule的运行总数,我只需使用cumsum()。但是,我似乎无法找到一种方法来显示每个BrokenRule的运行总计。也许可以同时使用cumsum()groupby(),但我还没有能够让它发挥作用。

有什么建议吗? 感谢

1 个答案:

答案 0 :(得分: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(默认情况下按列),可以得到预期的结果。