首页 > 解决方案 > Python pandas数据框:找到E列为1且A列最大的行,在平局的情况下,考虑B、C、D列中最大的

问题描述

我有一个示例数据框,如下所示。因为我们需要从 E 列为 1 的行中进行选择,所以结果应该在前 4 行中。从哪一列中选择最大的,我们有前 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

标签: pythonpandasdataframe

解决方案


一种方法是结合使用过滤和排序:

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

推荐阅读