Вот пример.
a b k c
0 0 0 0
0 1 1 0
0 2 0 0
0 3 0 0
0 4 1 0
0 5 0 0
0 0 0 1
0 1 1 1
0 2 0 1
0 3 0 1
0 4 1 1
0 5 0 1
1 0 0 0
1 1 1 0
1 2 0 0
1 3 1 0
1 4 0 0
1 0 0 1
1 1 1 1
1 2 0 1
1 3 1 1
1 4 0 1
Здесь «a» - это идентификатор пользователя, «b» - время, «c» - продукт, а «k» - флаг двоичного индикатора.Для каждого c «b» является последовательным, и двоичный флаг «k» уникальной пары (a, b) одинаков, что означает, что он не зависит от «c».Я хочу получить следующее:
a b k c diff_b
0 0 0 0 nan
0 1 1 0 nan
0 2 0 0 1
0 3 0 0 2
0 4 1 0 3
0 5 0 0 1
0 0 0 1 nan
0 1 1 1 nan
0 2 0 1 1
0 3 0 1 2
0 4 1 1 3
0 5 0 1 1
1 0 0 0 nan
1 1 1 0 nan
1 2 0 0 1
1 3 1 0 2
1 4 0 0 1
1 0 0 1 nan
1 1 1 1 nan
1 2 0 1 1
1 3 1 1 2
1 4 0 1 1
Итак, diff_b - это переменная разницы во времени.Показывает продолжительность между текущим моментом времени и последним моментом времени с действием.Если до этого никогда не было действия, возвращается nan.Этот diff_b сгруппирован по.Для каждого пользователя этот diff_b рассчитывается независимо и для того же пользователя, но для другого продукта, он также должен быть независимым от продукта.
Спасибо.