用多个大熊猫分组统计

时间:2019-10-01 22:52:05

标签: python-3.x pandas pandas-groupby

我有一个如下数据框:

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始终是定义的,并且在条目和员工之间相同。

0 个答案:

没有答案
相关问题