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

如何在Python DataFrame中基于起始时间与deltaT生成新datetime列?

解决方案

要实现起始时间加秒数偏移得到新的datetime列,核心是把deltaT转换成**时间间隔(Timedelta)**而非datetime,因为两个datetime类型不能直接相加,具体步骤如下:

  1. 先将原始的起始时间列(object类型)转换为datetime类型:
sinfo['BeginTime_dt'] = pd.to_datetime(sinfo['BeginTime'])
  1. 把deltaT列转换为Timedelta(秒为单位):
delta_timedelta = pd.to_timedelta(sinfo['deltaT'], unit='s')
  1. 两列相加得到最终的datetime列:
sinfo['NewDatetime'] = sinfo['BeginTime_dt'] + delta_timedelta

错误原因解释

你之前用pd.to_datetime(df.deltaT, unit='s')得到的是从1970-01-01 00:00:00开始的datetime对象,本质是一个时间点,而不是时间间隔。Pandas不允许两个时间点直接相加,所以抛出TypeError: cannot add DatetimeArray and DatetimeArray错误。而Timedelta是表示时间长度的类型,datetime + timedelta的操作是合法的,会得到一个新的时间点。

简化写法

也可以把步骤合并成一行:

sinfo['NewDatetime'] = pd.to_datetime(sinfo['BeginTime']) + pd.to_timedelta(sinfo['deltaT'], unit='s')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 22:48:10