如何创建一个ID,每当另一列的上一行为1时,该ID就增加1

How to create an ID that increases by 1 every time the previous row of another column is 1

使用 Python,我需要创建两个新变量。

一个(参见示例中的 JourneyID)每当另一列的前一行取值“1”时累积增加一个,并且

一个(参见示例中的 JourneyN)每次另一列的前一行取值“1”时累积增加 1,但每次受访者 ID 增加 1 时从 1 重新开始。

m = df['Purpose'] == 1
df.loc[m, 'JourneyID'] = m.cumsum()

Returns df[JourneyID] = [1,1,1,2,1,1,3,1,4] 当它应该 return [1,1,2,2 ,3,3,3,4,4] 为 ID。

非常感谢任何帮助。

它不是很干净,但应该能满足您的需求:

helper = ((df['Purpose']==1).cumsum()+1).shift(1)
helper[0]=1
df['JourneyID'] =  helper

JourneyN我没完全看懂:)