gpt4 book ai didi

python - DataFrame 中的时间计算和操作分组

转载 作者:行者123 更新时间:2023-12-01 01:28:39 25 4
gpt4 key购买 nike

我有一个数据框,其中包含用户、操作以及用户采取操作的时间。如果操作同时满足两个条件,我想将它们分组到一个列表中:1.同一用户执行了操作2. 20 分钟内采取行动。

目前我正在尝试使用 timedelta 来计算迭代的时间差并读取 this帖子但这不是我要找的。我很难找到类似的例子。

数据框有数千行,这是其中的一部分

user    action      time
A browse 2018-07-01 06:00:00
A edit 2018-07-01 06:10:00
B signin 2018-07-01 06:00:00
B browse 2018-07-01 06:11:00
B edit 2018-07-01 07:00:00

预期输出将是满足条件的操作列表

output
[[browse, edit], [signin, browse]]

用户 B 所做的最后一次“编辑”不在其中,因为 (07:00:00) - (06:11:00) > 20 分钟

关于如何执行此操作有什么建议吗?非常感谢您!

最佳答案

您可以使用IIUC,

df['time'] = pd.to_datetime(df.time) 

cond = df.groupby('user')['time'].diff().bfill().lt(pd.Timedelta('20m'))

df1 = df[cond].groupby('user')['action'].apply(list).tolist()

print (df1)

[['browse', 'edit'], ['signin', 'browse']]

关于python - DataFrame 中的时间计算和操作分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53112218/

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