组内分数高于阈值时,重新计算用户相对其他所有组的分数
问题处理需求
初始数据
现有一个包含用户信息的DataFrame(df),字段包括user、group(组编号)、x1(用户向量)、x2(组向量)、p2、k(组内成员数量)、threshold(组阈值),具体数据如下:
df = pd.DataFrame({'user': ['user 1', 'user 2', 'user 3', 'user 4', 'user 5'], 'group': [1, 0, 0, 2, 1], 'x1': [[0.2, 0.3, 0.5], [0.3, 0.3, 0.4], [0.4, 0.4, 0.2], [0.2, 0.1, 0.7], [0.5,0.3,0.2]], 'x2': [[0.5, 0.2, 0.3], [0.4, 0.2, 0.4], [0.4, 0.2, 0.4], [0.5, 0.1, 0.4], [0.5, 0.2, 0.3]], 'p2': [0.342, 0.231, 0.231, 0.411, 0.342], 'k': [2, 2, 2, 1, 2], 'threshold': [0.6, 0.9, 0.9, 0.8, 0.6],})
已计算的组内分数结果
已通过代码计算出每个用户相对于自身所属组的分数(score),计算结果如下:
user group x1 x2 p2 k threshold score 0 user 1 1 [0.2, 0.3, 0.5] [0.5, 0.2, 0.3] 0.342 2 0.6 0.909357 1 user 2 0 [0.3, 0.3, 0.4] [0.4, 0.2, 0.4] 0.231 2 0.9 0.586580 2 user 3 0 [0.4, 0.4, 0.2] [0.4, 0.2, 0.4] 0.231 2 0.9 0.846320 3 user 4 2 [0.2, 0.1, 0.7] [0.5, 0.1, 0.4] 0.411 1 0.8 1.437956 4 user 5 1 [0.5, 0.3, 0.2] [0.5, 0.2, 0.3] 0.342 2 0.6 0.558480
核心需求
- 当用户的**组内分数(score)高于对应组的阈值(threshold)**时,重新计算该用户相对于其他所有组的分数。
内容的提问来源于stack exchange,提问作者alxander21
相关产品推荐
相关产品推荐

