Как уже упоминалось в комментариях, это поведение было исправлено в более поздних версиях Pandas.Из-за того, что мы перебираем код, кажется, что он был исправлен для версии 0.23 в этом коммите .
Более подробно - код функции, вычисляющей дельту, _binary_op_method_timedeltalike
, содержит условие:
elif other is NaT: # (N)ot-(A)-(T)ime, the time equivalent of NaN
return NaT
Но None
не NaT
, и это является причиной ошибки:
>>> None is NaT
False
В более поздней версии второе условие имеетбыло добавлено, сначала преобразовав other
в Timedelta
объект, а затем снова протестировав условие, чтобы эффективно протестировать:
>>> Timedelta(None) is NaT
True
Так что теперь NaT
возвращается в случае None + Timedelta
.