Как создать идентификатор, который увеличивается на 1 каждый раз, когда предыдущая строка другого столбца равна 1 - PullRequest
0 голосов
/ 15 апреля 2020

Работая с Python, мне нужно создать две новые переменные.

Один (см. JourneyID в примере), который кумулятивно увеличивается на единицу каждый раз, когда предыдущая строка другого столбца принимает значение «1», и

Один (см. JourneyN в примере), который кумулятивно увеличивается по одному каждый раз, когда предыдущая строка другого столбца принимает значение «1», но начинается с 1 каждый раз, когда ID респондента увеличивается на 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.

Любая помощь с благодарностью.

Example of what I need to do

1 Ответ

1 голос
/ 15 апреля 2020

Это не супер чистый, но вы должны получить то, что вам нужно:

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

ПутешествиеN Я не совсем понял:)

...