代码
None + pd.Timedelta("1 day")
得出一个奇怪的结果:
Timedelta('-106751 days +00:12:43:145224')
为什么会这样?
答案 0 :(得分:2)
如评论中所述,此行为已在更高版本的Pandas中修复。通过遍历代码,似乎this commit中的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
。