Я пытаюсь придумать метод вычисления продолжительности сеанса. Мои данные приведены ниже. Я сделал предположение, что если кто-то снова войдет в систему - они начнут новую сессию, и поэтому предыдущая сессия должна была закончиться. Поэтому я буду использовать логин через действие до того, как пользователь снова войдет в систему в качестве продолжительности сеанса.Python находят разницу между датами в одном столбце pandas?
Action,Duration,_time,User
getForeignBugs,3,2016-11-07 15:45:18.992,savaithi
getServiceRequests,5,2016-11-07 15:45:18.902,savaithi
login,8088,2016-11-07 15:45:18.804,savaithi
getAuditTrail,550,2016-11-07 15:45:10.627,savaithi
getEnclosures,447,2016-11-07 15:45:09.994,savaithi
login,4810,2016-11-07 15:45:09.040,savaithi
getNoteTemplates,2,2016-11-07 15:45:04.220,savaithi
getQuickSearchInitInfo2,3,2016-11-07 15:45:01.995,savaithi
getQuickSearchInitInfo,3,2016-11-07 15:45:01.873,savaithi
login,0,2016-11-07 15:45:00.979,savaithi
getUserPreferences,2,2016-11-07 15:45:00.958,savaithi
getUserPreferences,2,2016-11-07 15:45:00.956,savaithi
SecurityServiceImpl.constructFromSession,2,2016-11-07 15:45:00.954,savaithi
setBooleanPreference,2,2016-11-07 15:45:00.954,savaithi
login,0,2016-11-07 15:45:00.658,savaithi
getPreference,1,2016-11-07 15:45:00.582,savaithi
getUserPreferences,129,2016-11-07 15:44:52.376,savaithi
login,2,2016-11-07 15:44:52.246,savaithi
Как бы я мог динамически обращаться к данным между входами и входами [index-1]?
на примере ниже я хочу использовать getPreference,1,2016-11-07 15:45:00.582
- login,2,2016-11-07 15:44:52.246
login,0,2016-11-07 15:45:00.658,savaithi
getPreference,1,2016-11-07 15:45:00.582,savaithi
getUserPreferences,129,2016-11-07 15:44:52.376,savaithi
login,2,2016-11-07 15:44:52.246,savaithi
Да! Это похоже на то, что я пытался сделать. И намного проще. Спасибо Макс! – anshanno
Теперь, когда я вхожу в него, ответ слегка выключен - пришлось сдвинуться с одного на один после того, как он описал 'df3.loc [(df3.Action == 'login') | (df3.Action.shift (-1) == 'login') | (df3.index == df3.index [-1]), '_time']. diff() 'для нового имени столбца. Я использовал: 'df3.session_duration = df3.session_duration.shift (-1)' после окончания сеанса сеанса с логином, а не с действием. Спасибо за помощь! Похоже, мне нужно кое-что прочитать в 'loc' - никогда раньше не использовалось. – anshanno