У меня есть pandas DataFrame
который выглядит следующим образом:Как выбрать мин запись пользователя в кадре данных панды во время учета для нескольких матчей, если вы хотите только один
record_date userid id priority
1 2016-05-27 02:00:39.600 1rhNGfQjU6 2718376 3
2 2016-05-27 02:00:39.600 EveMoYR1gs 2718377 3
3 2016-05-27 02:00:39.600 iVYGQgU3bX 2718378 3
4 2016-05-27 02:00:39.600 adA9fRNIgo 2718379 3
5 2016-05-27 02:00:39.600 rCDTlqTOXB 2718380 3
6 2016-05-27 02:00:39.600 aBI6JkLyal 2718381 3
7 2016-05-27 02:00:39.600 eiEct977ua 2718382 3
8 2016-05-27 02:00:39.600 7XVMWZPcZL 2718383 3
9 2016-05-27 02:00:39.600 GHajQM9UXN 2718384 3
Это не очевидно, здесь, но может быть более одной записи на пользователя в день. Я пытаюсь найти способ идентифицировать id
, который соответствует наименьшему значению приоритета для каждого пользователя в день. Я думаю, что у меня может возникнуть проблема с ломаной связью, потому что я пробовал предложения с другого сообщения SO (Python : Getting the Row which has the max value in groups using groupby), но эта логика, казалось бы, выберет все записи, равные min, тогда как мне действительно нужна только одна (в этом случае случайно выбранная) запись с минимальным приоритетом для каждого пользователя. Я знаю, что код выше не подходит для меня, потому что
len(set(df[indices]['userid'])) == len(df[indices]['userid'])
False. Каков наилучший способ достичь этого? Я понимаю, почему приведенный выше код не работает (поскольку он возвращает True
для тех записей, которые равны мин). Каков хороший способ сломать галстук?
да большое спасибо! – helloB