Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 序列的唯一id_Python_Pandas - Fatal编程技术网

Python 序列的唯一id

Python 序列的唯一id,python,pandas,Python,Pandas,我想为pandas数据帧中的每个序列生成一个唯一的id,其中序列的开头是从另一列标记的 我有X、Y和BOOL列,并希望生成新的_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 我

我想为pandas数据帧中的每个序列生成一个唯一的id,其中序列的开头是从另一列标记的

我有X、Y和BOOL列,并希望生成新的_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循环的解决方案,因为我有一个大的数据帧,需要花费太长的时间。

使用带有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