У меня есть логи пользователей:
df = pd.DataFrame({'users' : [1,1,1,2],
'dates' : ['2018-09-06','2018-09-06','2018-09-10','2018-09-10'],
'duration' : [3,3,8,8]})
дает:
user dates duration
1 2018-09-09 3
1 2018-09-09 3
1 2018-09-10 8
2 2018-09-10 8
...
Вот хитрая часть:
Как видите, некоторые пользователи делят своиработать в двух частях.Таким образом, пользователь 1 в день 28 проделал 6 часов, но выглядит как 3 и 3.
Время для простой статистики:
Когда мы делаем средние часы, каждый, кто разделил их время, ихзначения выглядят как крайние (беспорядок со средним значением 3).
Я мог бы использовать среднее.Но я хочу увидеть любые экстремальные значения, которые кто-то может иметь, как в течение дня, и сравнить их со средним значением.
Пример: вместо 8 часов этот пользователь все еще работал 6 часов, что является экстремальным значением, принимаемым какза день.
Финал: Итак, я хочу взять любые ежедневные часы как один, а затем сравнить их ежедневные часы со средним и медианным.
Один из вариантов может быть:
df.groupby(['users','days'])['duration'].mean()
, но все еще делает днем, а если не делает днем, то каждый день имеет независимость, что смешивается со средним значением.