python - 为什么可以添加 pd.Timedelta 和 None?
问题描述
编码
None + pd.Timedelta("1 day")
计算出一个奇怪的结果:
Timedelta('-106751 days +00:12:43:145224')
为什么会这样?
解决方案
如评论中所述,此行为已在更高版本的 Pandas 中修复。通过查看代码,似乎已在此提交中修复了 0.23 版。
更详细一点 - 计算 delta 的函数的代码_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
所以 nowNaT
在 的情况下返回None + Timedelta
。
推荐阅读
- xml - 通过基于某个值对标签进行分组,使用 XSLT 进行 XML 转换
- pandas - 如何快速读取 csv 文件并将它们附加到单个 pandas 数据框中
- jsf - p:pickList 和 Omnifaces 转换器问题
- web-scraping - 从网络获取数据 - 迭代列表以获取增值税号
- django - 如何使用 NGINX 为 Django 应用程序的用户 www-data 设置 AWS 凭证
- node.js - 使用 Gmail API 发送电子邮件
- c++ - 难以从 c++ boost 库中获取 barycentric_rational 以按照我的需要工作
- c# - Visual Studio 代码 - 参考文件夹
- macos - 在 PlaidML 中使用实验设备支持?
- java - 如何防止删除液