Вы можете использовать value_counts для панд.
value_counts : Возвращает объект, содержащий количество уникальных значений.Полученный объект будет в порядке убывания, так что первый элемент является наиболее часто встречающимся элементом.По умолчанию исключаются значения NA.
df.ID.value_counts()
Можно использовать группу тоже, как вы сказали по вопросу, , и это лучше , когда вы пытаетесь сделатьпростой подсчет частоты:
df.groupby(['ID'], sort=True).size()
Можно увидеть вычислительную стоимость каждого подхода и объяснить, почему один метод натощак, чем другой, на этом ответе .Но TLDR ответа:
m grouper counter
10 62.9 ms 315 ms
10**3 191 ms 535 ms
10**7 514 ms 459 ms
Это видео показывает, как некоторые операции выполняются внутри панд, поэтому, если вы хотите понять, какой метод использует больше памятиили требует больше операций, это полезно.