我有一个示例数据框如下所示。因为我们需要从E列为1的行中进行选择,所以结果应该在前4行中。选择A列是最大的,我们有前3行。所以我们需要看到哪一个B列是最大的。由于我们再次打成平局,我们应该看到C列并找到最大的。最后我们得到第一列。
A B C D E
4 4 3 1 1
4 2 0 0 1
4 4 1 1 1
3 0 0 0 1
5 0 0 1 0
所以期望的输出是这样的:
A B C D E
4 4 3 1 1
答案 0 :(得分:1)
一种方法是使用过滤和排序的组合:
res = df.loc[df['E'] == 1]\
.sort_values(['A', 'B', 'C', 'D'], ascending=False)\
.head(1)
print(res)
A B C D E
0 4 4 3 1 1