到目前为止,我具有以下结构的数据框。
我在这里看到了this的帖子,其中第二个答案说,使用numpy数组循环巨大的数据帧是最好的。
这是我的要求:
当前我正在使用for循环,但是它的速度慢得令人难以忍受。谁能建议如何使用numpy数组来满足我的要求?如this此处建议的那样?
编辑:
我在这里详细说明我的要求:
1.遍历唯一的日期
这将给我以下数据框:
2.在唯一的日期内,遍历唯一的sessionId。
会给我这样的东西:
3.一旦在唯一日期内的唯一sessionId中,
找到最后一个元素和第一个元素之间的时间戳差异
此时差将添加到每个唯一会话的列表中。
4.在第二个循环之外,我将取上述步骤中创建的列表的平均值。
5.我们在步骤4中获得的值被添加到另一个列表
目的是找出每天每个会话的最后一条消息与第一条消息之间的平均时间差
答案 0 :(得分:2)
使用分组依据:
grouped = df.groupby(['ChatDate", "sessionId"])
timediff = grouped.timestamp.last() - grouped.timestamp.first() # or max-min
timediff.mean() # this is your step 4