Вычислить и передать количество в pandas (с групповым преобразованием)

Как я могу вычислить и передать счет в pandas?

Чтобы вычислить количество:

df.groupby('field').size()

Чтобы передать агрегацию в исходный фрейм данных:

df.groupby('field')['field_to_aggregate'].transform(aggregation)

Последнее работает, если я указываю поле для агрегирования и агрегации, такие как sum, mean и т. д. Но я не нахожу способа заставить его работать, когда мне нужен простой подсчет поля, сгруппированного по.

(Примечание: я мог бы просто использовать первый и повторно присоединиться к исходной таблице против таблицы, сгруппированной по, но я хочу избежать объединений, и я ищу эффективное решение, которое использует панды transform)


person Michele Piccolini    schedule 24.11.2020    source источник


Ответы (1)


Вы можете попробовать:

result = df.groupby('field')['field_to_aggregate'].transform('size')

Обратите внимание, что 'field_to_aggregate' может совпадать с 'field'.

person Dani Mesejo    schedule 24.11.2020