如何用timedelta(python)减去两个时间列?

2024-10-01 15:47:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我花了好几个小时在这两个时间列之间做一个减法,这样我就能知道其他动作发生了多长时间:

In[1]:aumento_data_separada 
Out[1]: Response_Time      Request_Time(when the client do a request)   
 0   00:56:58.612000    00:46:34.347000
 1   12:00:41.069000    12:00:32.603000
 2   18:05:02.776000    16:39:42.682000
 3   19:27:11.997000    17:33:05.589000 
...

这个数据帧有392560行,如上面所示。我想给他们做手术。并用结果创建一个新列。 我试着读一下timedelta的文件,但我一点都不明白。 我这样做->;type(aumento_data_separada['Response_Time'].iloc[0])type(aumento_data_separada['Request_Time'].iloc[0])来查看类型,它返回给我一个datetime.time。我发现我不能在他们里面做手术,因为他们的类型。所以我尝试分别转换它们:pd.to_datetime(aumento_data_separada['Request_Time']),但它返回以下错误->;object of type 'datetime.time' has no len()。在

这是第一条错误消息和我尝试的代码->;aumento_data_separada.Response_Time - aumento_data_separada.Request_Time- 返回unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'


Tags: gt类型datadatetimetimeresponserequesttype
2条回答

使用pd.to_timedelta将列转换为pd.Timedelta

df = df.apply(pd.to_timedelta)

df.Response_Time - df.Request_Time

0   00:10:24.265000
1   00:00:08.466000
2   01:25:20.094000
3   01:54:06.408000
dtype: timedelta64[ns]

这两种方法的答案是比较快的。不知道为什么。在

df['Time_Diff'] = pd.to_datetime(df.Response_Time) - pd.to_datetime(df.Request_Time)

相关问题 更多 >

    热门问题