РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
376 of 687 menu

Метод cumcount

Метод cumcount применяется к объекту GroupBy и возвращает Series с порядковыми номерами элементов внутри каждой группы. Нумерация начинается с нуля. Метод полезен для маркировки повторяющихся записей, создания первичных ключей или ранжирования данных в группах.

Параметры метода:

  • ascending - булевый параметр, определяющий порядок нумерации. По умолчанию True (возрастание).
  • dtype - тип данных возвращаемой серии. По умолчанию int64.

Синтаксис

df.groupby('column').cumcount(ascending=True, dtype=None)

Пример

Создадим таблицу с повторяющимися значениями в столбце 'a' и пронумеруем элементы внутри каждой группы:

import pandas as pd df = pd.DataFrame({ 'a': [1, 1, 2, 2, 2, 3], 'b': [10, 20, 30, 40, 50, 60] }) df['group_index'] = df.groupby('a').cumcount() print(df)

Результат выполнения кода:

a b group_index 0 1 10 0 1 1 20 1 2 2 30 0 3 2 40 1 4 2 50 2 5 3 60 0

Для каждой группы значений в столбце 'a' (1, 2, 3) нумерация начинается с нуля.

Пример

Нумерация может выполняться в обратном порядке с помощью параметра ascending:

import pandas as pd df = pd.DataFrame({ 'a': [1, 1, 2, 2, 2, 3], 'b': [10, 20, 30, 40, 50, 60] }) df['desc_index'] = df.groupby('a').cumcount(ascending=False) print(df)

Результат выполнения кода:

a b desc_index 0 1 10 1 1 1 20 0 2 2 30 2 3 2 40 1 4 2 50 0 5 3 60 0

Пример

Метод cumcount часто используется вместе с groupby для создания составных индексов. В этом примере создадим столбец 'id' по двум группам:

import pandas as pd df = pd.DataFrame({ 'group': ['A', 'A', 'B', 'B', 'B'], 'value': [100, 200, 300, 400, 500] }) df['id'] = df['group'] + '_' + df.groupby('group').cumcount().astype(str) print(df)

Результат выполнения кода:

group value id 0 A 100 A_0 1 A 200 A_1 2 B 300 B_0 3 B 400 B_1 4 B 500 B_2

Смотрите также

  • метод cumsum,
    который вычисляет кумулятивную сумму внутри групп
  • метод count,
    который подсчитывает количество элементов в каждой группе
  • метод rank,
    который вычисляет ранги элементов внутри групп
  • метод ngroup,
    который возвращает номер группы для каждой строки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить