Найдена основная категория на основе суммы по группам в pandas - PullRequest
0 голосов
/ 03 августа 2020

Не могли бы вы поддержать меня, как решить эту проблему ниже.

Я пытаюсь найти какую-то основную категорию, основанную на groupby, и посмотреть, насколько важны категории.

У меня есть фрейм данных ниже.

>> USER    PROCESS    HOURS_WORKED
>> 0    USER1    PROCESS1    1
>> 1    USER1    PROCESS2    2
>> 2    USER1    PROCESS3    3
>> 3    USER2    PROCESS1    1
>> 4    USER2    PROCESS2    5
>> 5    USER2    PROCESS3    3

И я применяю механизм groupby на основе ПОЛЬЗОВАТЕЛЯ и ПРОЦЕССА.

dfg = df1.groupby(['USER','PROCESS']).sum()

Моя цель - фрейм данных ниже.

USER    MAIN_PROCESS
USER1   PROCESS3
USER2   PROCESS2

Может ли быть какой-нибудь метод или функция в groupby, которые делают это?

Заранее спасибо.

1 Ответ

2 голосов
/ 03 августа 2020

Попробуйте:

df[df.groupby(['USER']).HOURS_WORKED.rank("dense", ascending=False).eq(1)]

результат:

    USER   PROCESS  HOURS_WORKED
2  USER1  PROCESS3             3
4  USER2  PROCESS2             5

Когда ранг HOURS_WORKED в порядке убывания на USER равен 1, это указывает на «основной процесс».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...