为什么pd.Timedelta模数int有效,但不能加int?

时间:2019-12-05 14:26:38

标签: python pandas

一个人可以对任意数量的Pandas Timedeltas进行模运算,但是加法会导致不支持的错误。以下示例

<a href="#slide-1" />

产生

import pandas as pd
pd.to_timedelta(7, "s") % 3
pd.to_timedelta(7, "s") + 3

这有更深层的原因吗?

2 个答案:

答案 0 :(得分:0)

仅当您显示要使用的日期时间的一部分时,您才能执行此操作, 例如:

time=pd.to_timedelta(7, "s")
print(time)
0 days 00:00:07
print(time.seconds%3)
1

您不能使用其他类型进行划分

答案 1 :(得分:0)

看一下code for the Timedelta object,我们可以看到__mod__函数只是调用__divmod__函数,并返回第二个值;如下所示:

def __divmod__(self, other):
    # Naive implementation, room for optimization
    div = self // other
    return div, self - div * other

因此%可以与可以划分Timedelta对象的任何对象一起使用-我们可以在同一链接中看到__floordiv__从实现中接受什么。