Новый столбец Pandas, возвращающий поиск max из группы из нескольких столбцов - PullRequest
0 голосов
/ 01 мая 2019

У меня есть фрейм данных как таковой, и я пытаюсь сгенерировать столбец RESULT, используя groupby для столбцов Set, Subset и Subsubset.Я попытался вернуть idmax на perc.

| Set | Subset | Subsubset | Class | perc | RESULT |
|-----|--------|-----------|-------|------|--------|
|   1 | A      |         1 | good  |  100 | good   |
|   1 | A      |           | ok    |    0 | good   |
|   1 | A      |           | poor  |    0 | good   |
|   1 | A      |           | bad   |    0 | good   |
|   1 | A      |         2 | good  |   20 | bad    |
|   1 | A      |           | ok    |   10 | bad    |
|   1 | A      |           | poor  |   20 | bad    |
|   1 | A      |           | bad   |   50 | bad    |
|   1 | A      |         3 | good  |    0 | poor   |
|   1 | A      |           | ok    |   10 | poor   |
|   1 | A      |           | poor  |   80 | poor   |
|   1 | A      |           | bad   |   10 | poor   |
|   1 | B      |         1 | good  |   50 | good   |
|   1 | B      |           | ok    |    0 | good   |
|   1 | B      |           | poor  |    1 | good   |
|   1 | B      |           | bad   |   49 | good   |
|   1 | B      |         2 | good  |   60 | good   |
|   1 | B      |           | ok    |   10 | good   |
|   1 | B      |           | poor  |   20 | good   |
|   1 | B      |           | bad   |   10 | good   |

Чтобы уточнить, результатом всегда будет одно значение (например, никогда не будет виден сплит 50/50).

Устанавливает числов сотнях, подмножеств до ZZ (очень длинная таблица).

Это отличается от аналогичного вопроса Python: Получение строки, которая имеет максимальное значение в группах, используя groupby , как здесь яинтересно посмотреть на группировку по НЕСКОЛЬКИМ столбцам.

1 Ответ

2 голосов
/ 01 мая 2019

Так как вы упомянули idxmax, то мы используем idxmax

idx=df.groupby(['Set','Subset','Subsubset'])['perc'].transform('idxmax')

df['RESULT']=df.loc[idx,'Class'].values#df.Class.reindex(idx).values
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...