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

Python Pandas 如何给日期加上DataFrame列中存储的周数

Pandas日期与DataFrame周数字段相加报错解决方案

报错原因

datetime.timedelta()的weeks参数仅支持传入单值标量,不支持直接传入Pandas Series类型对象,因此将固定周数替换为DataFrame列时会触发类型不支持错误。

解决方案

方案1:使用Pandas内置pd.to_timedelta()(优先推荐)

pd.to_timedelta()原生支持Series类型输入,属于矢量化操作,性能远高于逐行处理,适配绝大多数场景:

# 转换起始日期为datetime格式
start_datetime = pd.to_datetime(startDate, format='%Y-%m-%d')
# 直接对周数列生成对应时间差,再和起始日期相加
df['Date'] = start_datetime + pd.to_timedelta(df['Duration (weeks)'], unit='W')

参数说明:unit='W'表示传入的数值单位为周。

方案2:逐行apply处理(仅适合小数据量)

如果你的周数字段存在特殊逻辑需要逐行判断,可以用apply逐行生成timedelta:

df['Date'] = df.apply(
    lambda row: pd.to_datetime(startDate, format='%Y-%m-%d') + datetime.timedelta(weeks=row['Duration (weeks)']),
    axis=1
)

注意:该方案是逐行遍历操作,数据量超过1万行时性能会明显低于方案1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:24:10