【问题标题】:How to group sessions of 30 minutes with reference initial timestamp on Pandas?如何在 Pandas 上使用参考初始时间戳对 30 分钟的会话进行分组?
【发布时间】:2020-11-16 00:52:49
【问题描述】:

所以基本上我有一群用户进入我的网站,我需要他们按他们的会话分组。会话是自第一次登录以来使用相同 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()

但它给了我错误的结果。请帮我解决它。

【问题讨论】:

标签: python pandas time-series


【解决方案1】:

类似:

np.ceil(df.groupby('id').diff().cumsum()/30)

【讨论】:

    猜你喜欢
    • 2021-07-16
    • 2016-11-07
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-05
    相关资源
    最近更新 更多