假设我有一个带有以下列和数据的pandas DataFrame:
我想选择那些在同一用户和会话中时间差(以秒为单位的time_diff列)小于某个阈值(例如10秒)的行。这将导致以下输出:
我可以遍历每一行,并选择id = 前一行的id和session = 前一行的session的记录,但我认为这不是最优的方法。
也没有产生预期的结果。
user time session time_diff
0 21.0 2022-12-16 14:03:08 5 NaN
1 21.0 2022-12-16 14:03:10 5 2.0
2 21.0 2022-12-16 14:03:12 6 2.0
3 21.0 2022-12-16 14:03:13 6 1.0
4 21.0 2022-12-28 14:49:54 16 1039601.0
5 30.0 2022-12-16 14:03:16 5 1039598.0
6 30.0 2022-12-16 14:03:18 5 2.0
7 30.0 2022-12-16 14:03:20 6 2.0
我想选择那些在同一用户和会话中时间差(以秒为单位的time_diff列)小于某个阈值(例如10秒)的行。这将导致以下输出:
user time session time_diff
1 21.0 2022-12-16 14:03:10 5 2.0
3 21.0 2022-12-16 14:03:13 6 1.0
6 30.0 2022-12-16 14:03:18 5 2.0
我可以遍历每一行,并选择id = 前一行的id和session = 前一行的session的记录,但我认为这不是最优的方法。
df.groupby(['user', 'session']).filter(lambda x: (x.time_diff <= 10).any())
也没有产生预期的结果。