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

如何使用timedelta(python)减去两个时间列?,python,pandas,python-datetime,Python,Pandas,Python Datetime,我花了好几个小时在这两个时间列之间做减法,这样我就可以看到另一个动作发生的时间: 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:

我花了好几个小时在这两个时间列之间做减法,这样我就可以看到另一个动作发生的时间:

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的文档,但我一点也不懂。 我这样做了->
键入(aumento_data_separada['Response_Time'].iloc[0])
键入(aumento_data_separada['Request_Time'].iloc[0])
查看类型,它返回了我一个
datetime.Time
。我发现由于类型的原因,我无法在它们内部执行操作。因此,我尝试将它们分别转换:
pd.to_datetime(aumento\u data\u separada['Request\u Time'])
但它返回以下错误->
类型为'datetime.Time'的对象没有len()

这是第一条错误消息和我尝试的代码->
aumento\u data\u separada.Response\u Time-aumento\u data\u separada.Request\u Time
- 正在返回-:“datetime.time”和“datetime.time”的
不支持的操作数类型

使用
pd.to\u 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]

这与piRSquared的答案类似,但由于某种原因,当我同时测试这两种方法时,速度更快。不知道为什么

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

你能展示一下你的尝试吗?我尝试了一些我确信是完全错误的事情
dif=aumento_data_separada['Response_Time']-datetime.timedelta(1)delta=dif-aumento_data_separada['Request_Time']a=datetime.timedelta(aumento_data_separada['Response_at'])
Sabrina,你的问题应该包括你的代码尝试,这样试图回答的人就有问题需要解决了。目前,你的问题看起来只是试图从社区获得免费咨询服务,向我们展示您迄今为止的工作,您期望的结果和您得到的结果,我们将帮助您找出错误所在。谢谢Ghoti!我是新来这里和编程的,哈哈,所以我仍然习惯于事情的运作方式,你对我的问题的反馈非常重要,所以我不会再犯同样的错误了!我编辑了它,希望它更好:)我尝试了它,但它给了我以下错误:
(“timedelta标量的类型无效:”,u“在索引响应时发生”)
我得到了这个错误->
类型为“datetime.Time”的对象没有len()