使用numpy数组来加快熊猫数据框的迭代速度

时间:2018-09-24 11:25:45

标签: python pandas numpy dataframe

到目前为止,我具有以下结构的数据框。

Current dataframe

我在这里看到了this的帖子,其中第二个答案说,使用numpy数组循环巨大的数据帧是最好的。

这是我的要求:

  1. 遍历唯一的日期
  2. 在数据框中的唯一日期内,通过唯一会话进行循环。
  3. 一旦我在唯一的日期进入唯一的会话,就需要进行一些操作

当前我正在使用for循环,但是它的速度慢得令人难以忍受。谁能建议如何使用numpy数组来满足我的要求?如this此处建议的那样?

编辑:

  

我在这里详细说明我的要求:
   1.遍历唯一的日期
  这将给我以下数据框:
  unique days    2.在唯一的日期内,遍历唯一的sessionId。
  会给我这样的东西:
  unique Sessions    3.一旦在唯一日期内的唯一sessionId中,
  找到最后一个元素和第一个元素之间的时间戳差异
  此时差将添加到每个唯一会话的列表中。
  4.在第二个循环之外,我将取上述步骤中创建的列表的平均值。
  5.我们在步骤4中获得的值被添加到另一个列表

目的是找出每天每个会话的最后一条消息与第一条消息之间的平均时间差

1 个答案:

答案 0 :(得分:2)

使用分组依据:

grouped = df.groupby(['ChatDate", "sessionId"])
timediff = grouped.timestamp.last() - grouped.timestamp.first() # or max-min
timediff.mean() # this is your step 4