pandas - 使用 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
解决方案
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
推荐阅读
- javascript - “如何区分 Hellman” 使用 RSA 和 JavaScript
- networking - 如何路由回原来的界面
- jquery - 带空格的类的 querySelector 语法
- c++ - 如何不断重复使用 HBITMAP 和 HDC?
- compiler-construction - 显示什么编程语言?
- xml - vb.net 应用程序将 xml 转换为文本
- python - python a,b = b,a 实现?它与 C++ 交换函数有何不同?
- python - Powershell命令在Windows中获取所有者或驱动器
- javascript - CryptoJS AES 加密不使用自己的 IV
- javascript - 我可以从我的标题中触发另一个组件的功能吗?