查找低于其销售等级的所有客户的累计销售总额。 输出为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。
所考虑的是按销售额对它们进行排序,然后将所有低于当前客户等级的客户的销售额相加。不知道如何将当前值与列的所有其他值进行比较,以及如何对该数据子集应用函数。
谢谢。
答案 0 :(得分:-1)
首先按销售额在数据框中使用分组依据,并使用最大汇总功能 例如
df.groupby('sales').max()
并使用此代码计算累计值
df['cum_sales']=df['sales'].cumsum()
`