sum() 不适用于 Timedelta 对象列表

sum() not working on lists of Timedelta objects

我有一个包含 pandas.Timedelta 个对象的列表

In [31]: r
Out[31]: [Timedelta('0 days 00:00:12'), Timedelta('0 days 00:10:02')]

我可以用加号算起来

In [32]: r[0] + r[1]
Out[32]: Timedelta('0 days 00:10:14')

但没有使用sum()

In [33]: sum(r)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-33-1ab9ba54065b> in <module>
----> 1 sum(r)

TypeError: unsupported operand type(s) for +: 'int' and 'Timedelta'

这是预期的吗?我希望 sum() 在这种情况下工作。 有没有办法在不显式迭代的情况下对列表中的 pandas.Timedelta 个对象求和?

来自 sum 函数的文档

This function is intended specifically for use with numeric values and may
reject non-numeric types.

但是,您可以通过传入 start 值(默认为整数 0)

使其工作
from datetime import timedelta
r = [timedelta(0), timedelta(days=1)]
sum(r, timedelta(0))

使用 pandas 系列更有意义,因为我们已经在使用 pandas Timedelta:

In [3]: s = pd.Series([Timedelta('0 days 00:00:12'), Timedelta('0 days 00:10:02')])

In [4]: s.sum()
Out[4]: Timedelta('0 days 00:10:14')