0

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

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

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

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

返回 df[JourneyID] = [1,1,1,2,1,1,3,1,4] 当它应该返回 [1,1,2,2,3,3,3,4,4] 的 ID .

任何帮助是极大的赞赏。

我需要做的例子

4

1 回答 1

1

它不是超级干净,但应该可以满足您的需求:

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

JourneyN 我没有完全理解 :)

于 2020-04-15T12:52:27.240 回答