Ответ 1
Как документировано, вы можете получить количество групп с len(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
.