根据另一列计算两个标记之间的差异

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了根据另一列计算两个标记之间的差异相关的知识,希望对你有一定的参考价值。

我有以下示例数据。我想计算每个唯一ID的保持时间,这与该id的两个时间戳之间没有区别。

例如:(20171116 03:46:17.467893 - 20171116 03:46:16.142514)对于id1,(20171116 03:46:17.212341 - 20171116 03:46:16.243121)id2,依此类推。

                   DATETIME   INSTR MODE TYPE  id
0  20171116 03:46:16.142514  INSTR1  ORD  New   1
4  20171116 03:46:17.467893  INSTR1  ORD  CXL   1
1  20171116 03:46:16.243121  INSTR2  ORD  New   2
3  20171116 03:46:17.212341  INSTR2  ORD  TRD   2
2  20171116 03:46:16.758292  INSTR3  ORD  New   3
5  20171116 03:46:18.924825  INSTR3  ORD  TRD   3

有人可以帮助我..很多人提前谢谢。

答案

首先转换列DATETIME to_datetime然后groupby,先减去最后一个值:

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

df = df.groupby('id')['DATETIME']
       .apply(lambda x: x.iat[-1] - x.iat[0]).reset_index(name='timedelta')

或者减去GroupBy.lastGroupBy.first

g = df.groupby('id')['DATETIME']
df = (g.last() - g.first()).reset_index(name='timedelta')

print (df)

   id       timedelta
0   1 00:00:01.325379
1   2 00:00:00.969220
2   3 00:00:02.166533

以上是关于根据另一列计算两个标记之间的差异的主要内容,如果未能解决你的问题,请参考以下文章

计算同一列之间的差异,在python中由另一列分组的连续行

Linq:根据条件计算两个条目之间的差异(前瞻)

基于pyspark中仅一列的两个DataFrame之间的差异[重复]

使用 R 根据另一列中的类别计算列和列表之间常见值的百分比

pandas 求两个时间差, 转化秒,判断时间差是否大于阈值

根据另一列计算一列的出现次数