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

Я работаю в Python, и мне нужно создать идентификатор поездки и номер поездки. Смотрите картинку для иллюстрации. Идентификатор должен увеличиваться каждый раз, когда предыдущая строка столбца «Цель» принимает значение 1. Номер поездки выполняет то же самое, но внутри каждого идентификатора респондента.

GezPerVer2019['JourneyID'] = np.where(GezPerVer2019['Hoofddoel'] = 1, GezPerVer2019['JourneyID'][i+1] + 1, GezPerVer2019['JourneyID'][i-1])

Это то, что я пробовал. Очевидно, я еще не слишком опытен в этом, и я думаю, что проблема в том, что np.where не позволяет использовать индикаторы [i].

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

On left before and on right expected after

1 Ответ

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

Используйте boolean indexing и cumsum здесь вместо:

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

Примечание : = is для назначения == для сравнения. Вы хотите последнее здесь при сравнении с 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...