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

sum()无法对pandas.Timedelta对象列表求和的原因及解决方法

现象是否符合预期

该现象完全符合预期。Python内置sum()函数默认的初始累加值为整数0,执行求和时会先计算0 + 第一个Timedelta对象,而整数和pandas.Timedelta类型没有定义合法的加法操作,因此会抛出TypeError,属于正常行为。

无需显式遍历的求和方法

以下方法都不需要手动编写for循环遍历列表即可完成求和:

  • 方法1:修改sum函数的初始值参数
    给sum()指定start参数为0值Timedelta即可直接求和:
    import pandas as pd
    total = sum(r, start=pd.Timedelta(0))
    

    注:sum函数的start参数在Python 3.8及以上版本可用,低版本Python可优先使用后两种方法。

  • 方法2:借助pandas内置的求和能力
    将列表转为pandas Series后调用自带的sum方法,原生支持Timedelta类型求和:
    import pandas as pd
    total = pd.Series(r).sum()
    
  • 方法3:使用functools.reduce实现累加
    通过reduce操作隐式完成遍历累加:
    from functools import reduce
    import operator
    total = reduce(operator.add, r)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:27:02