根据另一列计算两个标记之间的差异
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.last
和GroupBy.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
以上是关于根据另一列计算两个标记之间的差异的主要内容,如果未能解决你的问题,请参考以下文章
基于pyspark中仅一列的两个DataFrame之间的差异[重复]