我收到了带有累积数字的数据。有没有一种聪明的方法来消除数据,所以我每个月都有它而不是相互堆叠?(在此处查看示例 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”)分组后应用它。
添加回答
举报
0/150
提交
取消