首页 > 解决方案 > 使用 pandas 按客户 ID 显示事件之间的时间

问题描述

对于下面的示例数据,我想计算事件之间的平均时间增量差距,按客户 ID 分组。

在熊猫中实现这一目标的最佳方法是什么?

CUSTOMER_ID,    ORDER_AT
1,  2020-11-11 23:30:13
1,  2020-11-11 23:32:53
1,  2020-11-11 23:34:44
1,  2020-11-11 23:35:55
2,  2020-11-11 23:37:54
2,  2020-11-11 23:39:23
3,  2020-11-09 23:59:46
3,  2020-11-10 0:03:04
3,  2020-11-10 0:05:35
3,  2020-11-10 0:19:40
3,  2020-11-11 2:48:17
3,  2020-11-11 2:49:06
3,  2020-11-11 2:50:39
3,  2020-11-11 2:51:57
4,  2020-11-14 1:12:52
4,  2020-11-14 1:13:14
4,  2020-11-14 16:56:18

标签: pandas

解决方案


df.groupby('CUSTOMER_ID').ORDER_AT.agg(lambda x: x.diff().mean())

结果:

CUSTOMER_ID
1             0 days 00:01:54
2             0 days 00:01:29
3   0 days 03:50:18.714285714
4             0 days 07:51:43

如果您需要时间增量作为数字,例如分钟,请使用x.diff().mean().seconds/60


推荐阅读