Атрибут ngroup
Атрибут ngroup применяется к объекту GroupBy
и возвращает порядковый номер группы для каждой строки.
Этот атрибут удобно использовать для нумерации групп
при выполнении операций группировки.
Синтаксис
df.groupby(column).ngroup()
Пример
Давайте создадим таблицу с категориями и получим порядковый номер группы для каждой строки:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': ['x', 'y', 'x', 'y', 'z']
})
res = df.groupby('b').ngroup()
print(res)
Результат выполнения кода:
0 0
1 1
2 0
3 1
4 2
dtype: int64
Пример
Используем атрибут ngroup для добавления
номера группы в таблицу:
import pandas as pd
df = pd.DataFrame({
'a': [10, 20, 30, 40, 50],
'b': ['x', 'y', 'x', 'y', 'z']
})
df['group_num'] = df.groupby('b').ngroup()
print(df)
Результат выполнения кода:
a b group_num
0 10 x 0
1 20 y 1
2 30 x 0
3 40 y 1
4 50 z 2
Пример
При группировке по нескольким столбцам атрибут
ngroup нумерует уникальные комбинации:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': ['x', 'y', 'x', 'y', 'z'],
'c': ['m', 'm', 'n', 'n', 'm']
})
res = df.groupby(['b', 'c']).ngroup()
print(res)
Результат выполнения кода:
0 0
1 1
2 2
3 3
4 4
dtype: int64