如何使用 while 在 pandas 中重新启动循环

How to restart loop in pandas using while

[在此处输入图片描述][我有 ID 列,想为 id 添加计数,例如 pd 数据框中的计数列。我想使用 while 循环来做到这一点。我试过了,但我得到了永无止境的循环。 ID:1,1,1,2,2,3,3,3,4,5,6 计数必须是 COUNT:1,2,3,1,2,1,2,3,1,1,1

i=1
sum=1
n=len(df)
while i < n:
  if df.loc[i,"ID"]=df.loc[i-1,"ID"]:
  sum+=1
  df.loc[i,"Count"]=sum
  i+=1
   else:
  i=1

groupby,然后 transform'cumcount'

>>> df = pd.DataFrame({'ID': [1,1,1,2,2,3,3,4,4,4,5,6]})
>>> df 
    ID
0    1
1    1
2    1
3    2
4    2
5    3
6    3
7    4
8    4
9    4
10   5
11   6
>>> df['count'] = df.groupby('ID').transform('cumcount') + 1
>>> df 
    ID  count
0    1      1
1    1      2
2    1      3
3    2      1
4    2      2
5    3      1
6    3      2
7    4      1
8    4      2
9    4      3
10   5      1
11   6      1