Как рассчитать дельту времени в пандах? - PullRequest
0 голосов
/ 01 мая 2018
       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 & channel = 888 ) должно быть временным интервалом, который соответствует записи, которую последний раз видели os = 33 & channel = 88 , что можно найти в строке 0. Таким образом, timedelta должно быть разрывом между 2017-11-06 14: 34: 52 и 2017-11-06 14: 32: 21 . Если нет os = 33 & channel = 888 раньше, результатом должен быть Nan. Так как я могу понять это в пандах?

1 Ответ

0 голосов
/ 01 мая 2018

Предполагая, что click_time уже datetime

df.groupby([“os”, “channel”]).click_time.diff()

Создать новый столбец

df.assign(click_diff=df.groupby([“os”, “channel”]).click_time.diff())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...