Скажем, что у меня есть такой кадр данных
import pandas as pd
df = pd.DataFrame([[1, 2, 1], [1, 3, 2], [4, 6, 3], [4, 3, 4], [5, 4, 5]], columns=['A', 'B', 'C'])
>> df
A B C
0 1 2 1
1 1 3 2
2 4 6 3
3 4 3 4
4 5 4 5
Исходная таблица более сложна с большим количеством столбцов и строк.
Я хочу получить первую строку, соответствующую некоторым критериям. Примеры:
- Получить первую строку, где A > 3 (возвращает строку 2)
- Получить первую строку, где A > 4 AND B > 3 (возвращает строку 4)
- Получить первую строку, где A > 3 AND (B > 3 OR C > 2) (возвращает строку 2)
Но, если нет какой-либо строки, которая соответствует конкретным критериям, то я хочу получить первый после того, как я просто отсортирую его по A (или другим случаям с помощью B, C и т.д.)
- Возьмите первую строку, где A > 6 (возвращает строку 4, заказывая ее по букве A desc и получив первый)
Я смог сделать это, выполнив итерацию на кадре данных (я знаю, что craps: P). Поэтому я предпочитаю более питонический способ его решения.