熊猫按等级的条件累积总和

时间:2018-12-03 05:53:59

标签: pandas cumulative-sum

查找低于其销售等级的所有客户的累计销售总额。 输出为cum_sales列。

示例

| Customer | Product | sales | cum_sales |  rank |
|:--------:|:-------:|:-----:|:---------:|:-:|
|    Jon   |    Y    |   2   |     2     | 2 |
|    Abe   |    Y    |   3   |     5     | 1 |
|    Jon   |    X    |   10  |     17    | 2 |
|    ABE   |    X    |   5   |     7     | 3 |
|    RON   |    X    |   20  |     37    | 1 |
|   MIRA   |    X    |   2   |     2     | 4 |

如何在熊猫中做到这一点。如果用X产品查看Jon,则他的cum_sales值是(Mira + Abe + Jon)的总和,因为它们的销售额低于Jon。

所考虑的是按销售额对它们进行排序,然后将所有低于当前客户等级的客户的销售额相加。不知道如何将当前值与列的所有其他值进行比较,以及如何对该数据子集应用函数。

谢谢。

1 个答案:

答案 0 :(得分:-1)

首先按销售额在数据框中使用分组依据,并使用最大汇总功能  例如

df.groupby('sales').max()

并使用此代码计算累计值

df['cum_sales']=df['sales'].cumsum()

`