【发布时间】:2019-04-25 12:15:03
【问题描述】:
我想在销售完成后按比例分配给每位员工。因此,我首先需要总结导致销售的每个客户的联系人数量,然后将奖励分配给参与此过程的每个员工。
import pandas as pd
df = pd.DataFrame({"Cust_ID":[1,1,1,2,3,3], "Employee": ["A","B","B","C","B","A"], "Purchase":[0,0,1,1,0,1]})
df
Cust_ID Employee Purchase
0 1 A 0
1 1 B 0
2 1 B 1
3 2 C 1
4 3 B 0
5 3 A 1
当最终销售(Cust_ID = 1)需要 3 个(或更多)步骤时,奖励应按 50%、30% 和 20% (0%..) 分配。 对于 2 个步骤 70% 和 30%。一步 = 100%
结果应该是这样的:
Cust_ID Employee Purchase Reward
0 1 A 0 0.2
1 1 B 0 0.3
2 1 B 1 0.5
3 2 C 1 1.0
4 3 B 0 0.3
5 3 A 1 0.7
我尝试使用df["Reward"] = df.groupby("Cust_ID").Purchase.transform("xxx"),但这并没有执行分配的奖励..
提前致谢!
【问题讨论】:
标签: python pandas transform pandas-groupby