#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
Учитывая этот набор данных
CUSTOMER_ID,ORDER_AT
A,2020-11-11 23:30:13
A,2020-11-11 23:32:53
A,2020-11-11 23:34:44
A,2020-11-11 23:35:55
B,2020-11-11 23:37:54
B,2020-11-11 23:39:23
C,2020-11-09 23:59:46
C,2020-11-10 0:03:04
C,2020-11-10 0:05:35
C,2020-11-10 0:19:40
C,2020-11-11 2:48:17
C,2020-11-11 2:49:06
C,2020-11-11 2:50:39
C,2020-11-11 2:51:57
D,2020-11-14 1:12:52
D,2020-11-14 1:13:14
D,2020-11-14 16:56:18
как мне создать работающий вторичный индекс идентификатора транзакции, разделенный идентификатором CUSTOMER_ID?
мой желаемый результат будет
CUSTOMER_ID,CUSTOMER_TRANSACTION_ID,ORDER_AT
A,0,2020-11-11 23:30:13
A,1,2020-11-11 23:32:53
A,2,2020-11-11 23:34:44
A,3,2020-11-11 23:35:55
B,0,2020-11-11 23:37:54
B,1,2020-11-11 23:39:23
C,0,2020-11-09 23:59:46
C,1,2020-11-10 0:03:04
C,2,2020-11-10 0:05:35
C,3,2020-11-10 0:19:40
C,4,2020-11-11 2:48:17
C,5,2020-11-11 2:49:06
C,6,2020-11-11 2:50:39
C,7,2020-11-11 2:51:57
D,0,2020-11-14 1:12:52
D,1,2020-11-14 1:13:14
D,2,2020-11-14 16:56:18
Ответ №1:
Попробуйте Groupby
и cumcount()
.
df['CUSTOMER_TRANSACTION_ID']=df.groupby('CUSTOMER_ID').cumcount()
Комментарии:
1. Я не уверен, что вам нужен cumsum. общее количество достаточно (на основе вывода OP)
2. Вы правы @sammywemmy, отредактирует. Спасибо
3. отлично, спасибо! да, cumcount достаточно