如何使用 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
[在此处输入图片描述][我有 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