Это было бы полезно, поэтому я знаю, сколько уникальных групп я должен выполнять вычисления. Спасибо.
Предположим, что объект groupby называется dfgroup.
Это было бы полезно, поэтому я знаю, сколько уникальных групп я должен выполнять вычисления. Спасибо.
Предположим, что объект groupby называется dfgroup.
Как документировано, вы можете получить количество групп с len(dfgroup).
Начиная с версии 0.23 существует несколько вариантов использования. Во-первых, установка,
df = pd.DataFrame({'A': list('aabbcccd'), 'B': 'x'})
df
A B
0 a x
1 a x
2 b x
3 b x
4 c x
5 c x
6 c x
7 d x
g = df.groupby(['A'])
ngroupsБолее новые версии API groupby предоставляют этот (недокументированный) атрибут, который хранит количество групп в объекте GroupBy.
g.ngroups
# 6
Обратите внимание, что это отличается от GroupBy.groups который фактически возвращает сами группы:
g.groups
# {'a': Int64Index([0, 1], dtype='int64'),
# 'b': Int64Index([2, 3], dtype='int64'),
# 'c': Int64Index([4, 5, 6], dtype='int64'),
# 'd': Int64Index([7], dtype='int64')}
len Как показано в ответе BrenBarn, вы можете вызывать len непосредственно в объекте GroupBy или в GroupBy.groups (как показано выше).
len(g)
# 6
len(g.groups)
# 6
Это было задокументировано в GroupBy объекта GroupBy.
Для полноты вы также можете перебрать объект groupby, явно посчитав каждую группу:
sum(1 for _ in g)
# 6
Тебе повезло. Для этого у нас есть функция GroupBy.size.
g.size()
A
a 2
b 2
c 3
d 1
dtype: int64
Обратите внимание, что size учитывает и NaN. Если вы не хотите, чтобы количество NaN считалось, используйте вместо этого GroupBy.count.