You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas DataFrame中通过EndTime与时长计算StartTime?

计算Pandas DataFrame中的StartTime列

你的代码出错核心原因是不能直接用单个timedelta对象去减整个Series列——不管是datetime.timedelta还是pd.Timedelta,直接传Series参数都会报错或得到错误结果,得用Pandas支持的向量化时间操作。

下面是两种可行的正确实现方式:

方法1:直接使用已有的Duration_TimeDelta列

既然你已经把时长转换成了timedelta格式的Duration_TimeDelta列,直接做列级减法最简洁:

df['StartTime'] = df['EndTime'] - df['Duration_TimeDelta']

方法2:用pd.to_timedelta转换Duration_Minutes列

如果想基于整数格式的Duration_Minutes计算,需要先把整列转为timedelta类型,再做减法:

df['StartTime'] = df['EndTime'] - pd.to_timedelta(df['Duration_Minutes'], unit='m')

结果验证

运行上述代码后,会得到符合跨天逻辑的正确结果:

idEndTimeStartTime
100:53:1822:53:18
201:04:3800:29:38
305:04:3804:59:38

(注:你提到的第二个预期结果12:29:38应为笔误,实际01:04:38减去35分钟的正确结果是00:29:38)

内容的提问来源于stack exchange,提问作者VBC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 02:35:07