DataPrame для Python: найдите строку, столбец E которой равен 1, а столбец A является самым большим, в случае связей рассмотрим наибольшее из столбцов B, C и D - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть пример данных, перечисленных ниже. Поскольку нам нужно выбрать из строк, столбец 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

1 Ответ

0 голосов
/ 28 апреля 2018

Один из способов - использовать комбинацию фильтрации и сортировки:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...