Самый простой способ добавить повторяющийся столбец счетчика в фрейм данных pandas

#python #pandas #dataframe #indexing #counting

Вопрос:

У меня есть datafame:

 import pandas as pd

df = pd.DataFrame(
 {
 "key": ["K0", "K1", "K2", "K3", "K4", "K5", "K6", "K7", "K8", "K9",'K10', 'K11',],
 "team": ['a', 'd', 'w', 'a', 'c', 's', 'x', 'd', 'a', 'f', 'e', 'r'],
 }
)

df = 
    key team
0   K0  a
1   K1  d
2   K2  w
3   K3  a
4   K4  c
5   K5  s
6   K6  x
7   K7  d
8   K8  a
9   K9  f
10  K10 e
11  K11 r
 

Каков короткий / простой способ добавления повторяющегося столбца счетчика, подобного этому?:

     key team    counter
0    K0  a      0
1    K1  d      0
2    K2  w      0
3    K3  a      1
4    K4  c      1
5    K5  s      1
6    K6  x      2
7    K7  d      2
8    K8  a      2
9    K9  f      3
10   K10 e      3
11   K11 r      3
 

Мое чувство подсказывает мне, что должно быть однострочное решение (может быть, немного длиннее). Но все, что я могу придумать, было бы намного длиннее и сложнее.

Как бы вы подошли к этому?

Ответ №1:

пробовать:

 df['counter']=df.index//3
 

или

Если у вас есть пользовательский индекс, вы можете использовать:

 df['counter']=[x//3 for x in range(len(df))]
 

выход из df :

     key     team    counter
0   K0      a       0
1   K1      d       0
2   K2      w       0
3   K3      a       1
4   K4      c       1
5   K5      s       1
6   K6      x       2
7   K7      d       2
8   K8      a       2
9   K9      f       3
10  K10     e       3
11  K11     r       3