我想首先对“组”列进行分组。然后根据结果列和排名列中的条件更改结果列中的值。
这就是我现在所拥有的:
import pandas as pd
import numpy as np
group = ['g1','g1','g1','g1','g1','g2','g2','g2','g2','g2','g2']
rank = ['1','2','3','4','5','1','2','3','4','5','6']
result = ['1','4','2','4','4','1','4','4','2','4','4']
df = pd.DataFrame({"group": group, "rank": rank, "result": result})
group rank result
0 g1 1 1
1 g1 2 4
2 g1 3 2
3 g1 4 4
4 g1 5 4
5 g2 1 1
6 g2 2 4
7 g2 3 4
8 g2 4 2
9 g2 5 4
10 g2 6 4
在同一组中,当排名大于结果 = 2 的排名时,我想将结果从 4 更改为 6
例如:在 g1 中,结果 = 2 的排名是 3。因此排名 4 和 5 的结果将是 6。
在 g2 中,result = 2 的排名是 4。因此排名 5 和 6 的结果将是 6。
在这种情况下,我想要的输出将是:
group rank result
0 g1 1 1
1 g1 2 4
2 g1 3 2
3 g1 4 6
4 g1 5 6
5 g2 1 1
6 g2 2 4
7 g2 3 4
8 g2 4 2
9 g2 5 6
10 g2 6 6
我不知道实现这一目标的最佳方法。有人可以帮忙吗?
眼眸繁星
莫回无
相关分类