#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