Ключ группы Pandas затем фильтрует на основе ключей группы и возврата - PullRequest
0 голосов
/ 28 ноября 2018

Как panda делает следующее?

data.groupby('id').duration.max().index[data.groupby('id').duration.max() > 365]

Я не хочу группировать по идентификатору, а затем фильтровать по группам и возвращать идентификатор, где условие было истинным.

с использованием функции group.filter возвращает исходный фрейм данных.

1 Ответ

0 голосов
/ 28 ноября 2018

Вы можете переписать свой код - он называется boolean indexing с Series из функции агрегирования max и index:

s = data.groupby('id').duration.max()
idx = s.index[s > 365]
#alternative
#idx = s[s > 365].index

Вы также можете проверить отфильтрованныйзначения Series:

print(s[s > 365])

Но если хотите отфильтровать оригинал DataFrame по max значениям для групп, добавьте GroupBy.transform для возврата Series с тем же размером, что и оригиналDataFrame:

data[data.groupby('id').duration.transform('max') > 365]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...