为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas:撤销累积(例如累积和)

Pandas:撤销累积(例如累积和)

慕斯王 2021-06-03 13:28:14
我收到了带有累积数字的数据。有没有一种聪明的方法来消除数据,所以我每个月都有它而不是相互堆叠?(在此处查看示例 xlsx:https ://docs.google.com/spreadsheets/d/1yELrJdZmi3CFJccYSi5U6GGDW-Awp5spHDnsDyshBe0/edit?usp = sharing 。)示例输入:Date    SalesRep    itemA   itemB01-01-2018  Jakob   5       1001-01-2018  Adomas  10      2001-01-2018  Thomas  15      3001-02-2018  Jakob   50      3001-02-2018  Adomas  100     4001-02-2018  Thomas  150     65期望的输出:Date    SalesRep    itemA   itemB01-01-2018  Jakob   5       1001-01-2018  Adomas  10      2001-01-2018  Thomas  15      3001-02-2018  Jakob   45      2001-02-2018  Adomas  90      2001-02-2018  Thomas  135     35此致,普热米斯瓦夫PS更新如果数据不是每个月都在增加怎么办?示例输入:Date    SalesRep    itemA   itemB01-01-2018  Jakob   5       1001-01-2018  Adomas  10      2001-01-2018  Thomas  15      30**01-02-2018    Jakob   50      30**01-02-2018  Adomas  100     4001-02-2018  Thomas  150     65**01-03-2018    Jakob   50      30**01-03-2018  Adomas  102     6001-03-2018  Thomas  155     75如果 Jakob 没有每个月递增,那么您的解决方案不起作用怎么办?我可以以某种方式指定参数来检查并仅在发生变化时减去吗?
查看完整描述

3 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

这是 Denziloe 答案的一个不太一般但更漂亮的版本:


def reverse_cumsum(series):

    series_zeroed = pd.concat([pd.Series([0]), series])

    return series_zeroed.diff()[1:]

这可以通过按日期排序在您的示例中使用,然后在按所需列(在您的情况下为“SalesRep”)分组后应用它。


查看完整回答
反对 回复 2021-06-15
  • 3 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信