gpt4 book ai didi

python - 使用 Dataframes 来识别 session

转载 作者:太空宇宙 更新时间:2023-11-04 00:05:55 26 4
gpt4 key购买 nike

对于用户分析,我有一个包含事件和每个事件的时间戳的数据库。

Timestamp   |   user    |    event code
13:30:23 | user1 | event123
13:30:45 | user1 | event123
13:30:56 | user3 | event123
13:40:15 | user2 | event123
13:55:20 | user1 | event123

现在我想通过使用 session ID 注释事件来识别每个用户的“ session ”。

每个 session 都应由用户的一组事件标识,它们之间没有 X 秒(或分钟)的间隔。这意味着事件结束 session 后有 X 秒的间隔。每个用户的 session ID 不必从 0 开始,但稍后仅在每个用户的基础上使用。这里设置了 X = 5 分钟。

Timestamp   |   user    |    event code    | session_id
13:30:23 | user1 | event123 | 1
13:30:45 | user1 | event123 | 1
13:30:56 | user3 | event123 | 2
13:40:15 | user2 | event123 | 3
13:55:20 | user1 | event123 | 4

数据框可以吗?

最佳答案

使用GroupBy.ngroup :

#convert to datetimes
df['Timestamp'] = pd.to_datetime(df['Timestamp'])
#identify difference 5Min for each group with cumulative sum
g = (df.groupby('user')['Timestamp'].diff() > pd.Timedelta('5Min')).cumsum()
#create counter of groups
df['session_id'] = df.groupby(['user', g], sort=False).ngroup() + 1
print (df)
Timestamp user event code session_id
0 2019-01-07 13:30:23 user1 event123 1
1 2019-01-07 13:30:45 user1 event123 1
2 2019-01-07 13:30:56 user3 event123 2
3 2019-01-07 13:40:15 user2 event123 3
4 2019-01-07 13:55:20 user1 event123 4

关于python - 使用 Dataframes 来识别 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54075233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com