ip app device os channel click_time is_attributed
0 83230 3 1 33 888 2017-11-06 14:32:21 0
1 17357 3 1 19 379 2017-11-06 14:33:34 0
2 35810 3 1 13 379 2017-11-06 14:34:12 0
3 45745 14 1 33 888 2017-11-06 14:34:52 0
4 161007 3 1 13 379 2017-11-06 14:35:08 0
Вот фрейм данных, и я хочу добавить один столбец, который представляет значение разницы времени (в секундах) между каждым указанным условием. Например, возьмем os-канал в качестве идентификатора, а timedelta в строке 3 (os = 33 и канал = 888) должен быть промежутком времени от последней просмотренной записи os = 33 и канал = 88, которую можно найти в строке-0. Таким образом, timedelta должен быть промежутком между 2017-11-06 14:34:52 и 2017-11-06 14:32:21. Если раньше не было os = 33 и канал = 888, результат должен быть Nan. Итак, как я могу реализовать это в пандах?
Предполагая, что click_time
уже является datetime
df.groupby([“os”, “channel”]).click_time.diff()
Создать новый столбец
df.assign(click_diff=df.groupby([“os”, “channel”]).click_time.diff())