gpt4 book ai didi

python - 计算两行之间时间差的最佳方法

转载 作者:太空宇宙 更新时间:2023-11-04 09:28:56 28 4
gpt4 key购买 nike

场景

我有一个具有给定结构的数据框,最后总结一下,我想找出服务的响应和请求之间的时间差。它有以下列:

  • 时间戳
  • 服务
  • 命令
  • 消息类型
  • 消息_ID

数据的一个例子是:

Timestamp   Service      Command     Message_Type   Message_ID
12:00:00 FoodOrders SeeStock() Request 125
12:00:02 FoodOrders SeeStock() Response 125

输出应该是这样的

Service   Command   Message_ID  TimeDiff
FoodOrders SeeStock 125 00:00:02

我想到了什么

按 Service、Command、Message_ID 分组,并添加一个带有计算时间差的函数的附加列。

我的实际问题

  • 我最初的计划好吗?我希望尝试使代码尽可能干净和快速

谢谢。

最佳答案

如果性能很重要,请避免聚合和 groupby,因为速度慢,更好的方法是使用 MultiIndex 创建 ResponseResponse 系列并减去 Timestamp , sort_index 也应该有助于提高性能:

#if necessary
#df['Timestamp'] = pd.to_timedelta(df['Timestamp'])

cols = ['Service','Command','Message_ID']
s1 = df[df['Message_Type'] == 'Response'].set_index(cols)['Timestamp'].sort_index()
s2 = df[df['Message_Type'] == 'Request'].set_index(cols)['Timestamp'].sort_index()

df1 = s1.sub(s2).reset_index()
print (df1)
Service Command Message_ID Timestamp
0 FoodOrders SeeStock() 125 00:00:02

关于python - 计算两行之间时间差的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56473530/

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