我有一个如下数据框:
employee entry timestamp
A 1 2012-04-06 14:51
2012-04-06 14:52
2012-04-06 14:53
2 2012-04-06 15:21
2012-04-06 15:22
2012-04-06 15:23
3 2012-04-06 13:42
2012-04-06 13:43
2012-04-06 13:44
B 1 2012-04-06 14:48
2012-04-06 14:49
2012-04-06 14:50
2 2012-04-06 15:24
2012-04-06 15:25
2012-04-06 15:26
3 2012-04-06 13:33
2012-04-06 13:34
2012-04-06 13:35
此处始终对每个条目的时间戳进行排序。我想找到的是:
最后,我想要类似的东西:
employee average
A 00:05:21
B 00:04:23
我正在执行以下操作:
df["deltas"] = df.groupby(["employee", "entry"])["timestamp"].diff()
# drop all NATs from df["deltas"]
described = df["deltas"].groupby(["employee", "entry"]).describe()
means = described.groupby(["employee", "entry"]).mean()
average = means.groupby(["employee"]).mean()
如果这是根据问题陈述做事的正确方法,我想获得一些反馈。我的结果看起来还不错,但是我不确定groupby()
的电话是否在正确的位置,以及我是否可以做得更好。这是我第一次与pandas
合作。真的很感谢您的关注。
从本质上讲,每个条目的时间戳代表员工每次对该条目进行更新的时间,我实质上是想查找员工更新条目的平均时间。员工将更新条目x次。 x始终是定义的,并且在条目和员工之间相同。