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

向日期添加float/int类型秒数报timedelta秒组件不支持Timestamp错误如何解决

问题原因

你遇到的报错核心不是float类型不支持,而是代码的缩进和逻辑错误,把原本存秒数的变量P错误赋值成了Timestamp时间对象:

  • 你错误把后续业务逻辑缩进放到了else代码块中,当itp为空时,先给P赋值为0,紧接着又执行P= pd.to_datetime(date) + pd.DateOffset(seconds=30),此时P就从数字变成了时间戳类型,后续把这个时间戳传给pd.DateOffset(seconds=P),自然就报类型不匹配的错误。
  • 额外还有两个明显问题:代码中用到的t1变量没有定义;循环变量i全程未使用,每次循环都固定取df.iloc[5,1],不符合常规遍历逻辑。

修复方案

pd.DateOffset本身完全支持float类型的秒数参数,只要修正逻辑错误,保证传给seconds的参数是数字即可:

import pandas as pd
from datetime import datetime

# 初始化起始日期直接存datetime类型,避免反复转换
first_day = df.iloc[1, 0][0:8] 
current_date = datetime.strptime(first_day, '%Y%m%d')

with open('myfile.txt','w') as f:
    for i in range(len(df)):
        # 按业务需求调整取数逻辑,原固定取第5行可按需修改
        itp = df.iloc[i, 1].replace('[', '').replace(']', '')
        if itp != '':
            # 计算秒数,保留float类型
            P = float(itp) / 100
        else:
            P = 0
        # 业务逻辑移到if/else外部,不要嵌套在else中
        t1 = current_date + pd.DateOffset(seconds=30)
        t2 = current_date + pd.DateOffset(seconds=P)
        # 修复t1未定义问题,更新当前日期给下一轮循环使用
        current_date = t1 - pd.DateOffset(seconds=15)
        print(current_date, P, t2, file = f)

修复后不管传整数秒还是3.14这类浮点秒,都可以正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:18:01