python - 如何在 Pandas 上使用参考初始时间戳对 30 分钟的会话进行分组?
问题描述
所以基本上我有一堆用户进入我的网站,我需要他们按他们的会话分组。会话是自第一次登录以来使用相同 ID 的 30 分钟连接。如果超过 30 分钟,则视为新会话。
样本输入:
id,timestamp_datetime
1,2020-04-25 21:28:57.499 # Session 1 - first session
1,2020-04-25 21:41:41.691
1,2020-04-25 21:41:11.055
1,2020-04-25 22:00:00.015 # Session 1 - second session (more then 30 minutes)
2,2020-04-25 21:41:41.691 # Session 2 - first session
2,2020-04-25 22:00:00.015
2,2020-04-25 22:30:03.838 # Session 2 - second session
3,2020-04-25 21:41:41.691
样本输出:
id, count_sessions
1, 2
2, 2
3, 1
我试过这个
df.groupby([df.index.to_period('30T'),"id"]).count()
但它给了我错误的结果。请帮我修复它。
解决方案
就像是:
np.ceil(df.groupby('id').diff().cumsum()/30)
推荐阅读
- javascript - 如何使用 flat() 方法获取数组中的某些值?
- dictionary - Mockito:验证参数是使用正则表达式模式的 Map
- hybris - 为 SAP Commerce 和 Spartacus 创建站点地图
- python - 如何在运行时将 _ctypes 添加到 Python 2.7 构建中?
- python - 如何将此 Python 脚本翻译成 C#?
- python - 使用 Pandas 更新 CSV 文件中的 Nan 值,并在 CSV 的其他列上使用 if else 条件
- oracle - 停止其余过程的 Oracle 过程异常
- node.js - 我只是想要一个可以匹配 req.params.id == post._id 的 get api
- javascript - Reactjs app div onclick在IE 11中不起作用没有调用函数
- reactjs - React Native 中绝对定位元素的内容宽度