count
& nunique
- это разные функции и разные вещи.
Ссылки на документацию для дальнейшего чтения:
count
возвращает количество не-значений NA для каждой серии в каждой группе.
nunique
возвращает количество уникальных не-NA значений для каждой серии в каждой группе
Относительно того, почему nunique
реализован таким образом, что столбцы группировки также включены, я не уверен, поскольку в случае использования df.groupby(...).nunique()
эта серия будет всегда тривиальной.
В обычном случае столбцы группировки задаются как индекс (если не используется as_index=False
), а не дублируются как столбцы в кадре.
Поведение count
соответствует ожидаемой groupby apply/agg
семантике, а не наоборот.
Однако кто-то написал тест для nunique
, где ожидаемый результат также включает в себя столбцы группировки в виде столбцов для as_index=True
и as_index=False
, как вы заметили.