我想为熊猫数据框中的每个序列生成一个唯一的ID,其中序列的开始是从另一列中标记出来的。
我有X,Y和BOOL列,并希望生成NEW_ID列
X Y BOOL NEW_ID
x y TRUE 1
x y FALSE 1
x y FALSE 1
x y TRUE 2
x y FALSE 2
x y FALSE 2
x y FALSE 2
x y TRUE 3
x y TRUE 4
x y FALSE 4
我试图找到一个没有for循环的解决方案,因为我的数据帧很大,而且花费的时间太长。.
答案 0 :(得分:0)
在BOOL列中使用cumsum
df['New_ID']=df.BOOL.cumsum()
df
Out[39]:
X Y BOOL NEW_ID New_ID
0 x y True 1 1
1 x y False 1 1
2 x y False 1 1
3 x y True 2 2
4 x y False 2 2
5 x y False 2 2
6 x y False 2 2
7 x y True 3 3
8 x y True 4 4
9 x y False 4 4