【发布时间】:2015-02-23 15:13:16
【问题描述】:
问题:
我想做的是将Series 中的值逐步减小一个不断减小的基数。
我不确定这方面的术语 - 我确实认为我可以用 cumsum 和 diff 做点什么,但我认为我正在带领自己在那里追逐野鹅......
起始代码:
import pandas as pd
ALLOWANCE = 100
values = pd.Series([85, 10, 25, 30])
期望的输出:
desired = pd.Series([0, 0, 20, 30])
理由:
从ALLOWANCE 的基数开始 - Series 中的每个值都减去剩余的数量,津贴本身也是如此,因此发生以下步骤:
- 从 100 开始,我们可以完全删除
85,所以它变成0,我们现在将15留下为ALLOWANCE - 下一个值是
10,我们仍然有15,所以这又变成了0,我们还有5。 - 下一个值是
25- 我们只剩下5,所以它变成了20,现在我们没有更多的余量了。 - 下一个值是
30,由于没有余量,所以值保持为30。
【问题讨论】:
-
我会将
values变量重命名为expenses,将desired变量重命名为debts,与allowance结合使用可以让读者了解您想要完成的任务,甚至无需看着文字,imo。