我正在尝试根据数据框中的不同值计算分数。由于这些分数基于不同的条件,我在最终计算中遇到问题,我需要在新列中,Col E如果两列中有相似的值,我需要在其中一个列()中选择更高的数字( Col ID & VID) 并且在一列中是唯一的 ( Col QID)。
ID VID QID A B C D E
121 212 123 1 2 1 1 1
121 212 435 1 2 1 1 5
223 244 567 2 3 5 1 2
313 232 709 5 1 2 1 3
313 232 887 5 1 2 1 2
454 969 457 1 3 2 2 4
454 969 457 1 2 1 2 4
最后一行展示Col ID, VID, QID and E可以相同但由于Col A, B, C and D不同,因此会导致不同的分数。(较高值)的乘积Columns A, B, C, D and E应该在Col Score. 预期结果如下:
ID VID QID A B C D E Score
121 212 123 1 2 1 1 1 2
121 212 435 1 2 1 1 5 10
223 244 567 2 3 5 1 2 60
313 232 709 5 1 2 1 3 30
313 232 887 5 1 2 1 2 20
454 969 457 1 3 2 2 4 48
454 969 457 1 2 1 2 4 16
计算类似于 A * B * C * D * E 列。用于Score基于相似的 ID 和 VID 但唯一的 QID 计算。
较高的值Col E可以是第一个或最后一个。如果可以通过 groupby 然后合并它们以获得上面的结果,那么这也解决了这个目的。
我曾尝试.sort引入Col E降序或升序格式,然后进行计算,但无法编写计算背后的逻辑。现在只是一个初学者试图解决这个问题几天。
提前致谢!