根据新客户编号重置cumsum

时间:2018-01-11 19:57:32

标签: python pandas cumsum

我有一个看起来像这样的数据集。 enter image description here

我想要做的是以下

  • 对于每个客户编号,总和信用额度,总和借方金额(最旧到最新),直到借记卡/贷方金额* -1
  • 积分可以适用于部分发票
  • 返回文档编号(和金额)列表,以便为每位客户应用信用

df['debcum_sum'] = df.groupby(['CustNum'])['Debits'].apply(lambda x: x.cumsum())

我打算为cumsum添加一列,但我想尝试将其作为for循环。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

使用groupby + cumsumpd.Series.where / mask的组合隐藏基于Credit列的值 -

v = df.groupby(['CustNum'])['Debits'].cumsum()
df['debit_cumsum'] = v.where(v >= df['Credit'] * -1)