Ich versuche eine Methode zur Berechnung der Sitzungsdauer zu finden. Meine Beispieldaten sind unten. Ich habe die Annahme gemacht, dass, wenn sich jemand wieder anmeldet, eine neue Sitzung beginnt und somit die vorherige Sitzung beendet sein sollte. Daher werde ich die Anmeldung über die Aktion verwenden, bevor sich der Benutzer erneut als Sitzungsdauer anmeldet.Python finde den Unterschied zwischen Daten in einer Pandasäule?
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
Wie würde ich dynamisch auf Daten zwischen Login und Login zugreifen [index-1]?
für unter Beispiel mag ich getPreference,1,2016-11-07 15:45:00.582
verwenden - 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
Ja! Das sieht genau so aus, wie ich es versucht habe. Und viel einfacher auch. Danke Max! – anshanno
Jetzt, da ich darauf eingehe, ist die Antwort etwas aus - musste nach der Aufnahme von 'df3.loc [(df3.Action == 'login') | (df3.Action.shift (-1) == 'Login') | (df3.index == df3.index [-1]), '_time']. diff() 'zu einem neuen Spaltennamen. Ich benutzte: 'df3.session_duration = df3.session_duration.shift (-1)' nach um die Sitzungsdauer mit der Anmeldung anstatt mit der Aktion zu verlängern. Danke für die Hilfe! Sieht so aus, als müsste ich etwas in 'loc' einlesen - habe es vorher nie wirklich benutzt. – anshanno