Python pandas dataframe:找到E列为1的行,A列是最大的,如果是tie,则考虑D列中最大的B,C

时间:2018-04-28 17:40:12

标签: python pandas dataframe

我有一个示例数据框如下所示。因为我们需要从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

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