Я ищу быстрое решение для группировки по ColA и добавления столбца «count» с интервалами в 3 шага. Пример ниже:

Оригинальный DF:

ColA 
 G
 G
 G
 G
 G
 G
 G
 G
 G
 B
 B
 B
 B
 B
 B
 B
 B
 B

Необходимо сгруппировать по ColA и создать ColB, который в основном представляет собой столбец заказа, но с трехступенчатыми интервалами. В моем реальном наборе данных мне нужно, чтобы шаг был 5, но, например, я сделал 3.

Желаемый DF:

ColA     ColB
 G        1
 G        1
 G        1
 G        2
 G        2
 G        2
 G        3
 G        3
 G        3
 B        1  
 B        1
 B        1
 B        2 
 B        2 
 B        2
 B        3
 B        3
 B        3

Благодарность

-2
dmd7 23 Ноя 2021 в 17:36

1 ответ

Лучший ответ

Я бы groupby ColA и получил бы целочисленное деление cumcount на количество необходимых шагов + 1:

df['ColB'] = df.groupby('ColA').cumcount()//3+1

Выход:

   ColA  ColB
0     G     1
1     G     1
2     G     1
3     G     2
4     G     2
5     G     2
6     G     3
7     G     3
8     G     3
9     B     1
10    B     1
11    B     1
12    B     2
13    B     2
14    B     2
15    B     3
16    B     3
17    B     3
1
mozway 23 Ноя 2021 в 17:42
Понятно, я скучаю по группе от colA
 – 
jezrael
23 Ноя 2021 в 17:52