首页 > 解决方案 > pandas:如何获取 NaT 的当前日期时间

问题描述

我正在尝试通过计算 2 个动态日期的差异并将其转换为相应的小时数来计算老化

这是我的代码片段

l_series = getattr(df, field_def['primaryField'])
r_series = getattr(df, field_def['secondaryField'])
result = l_series - r_series

这是我的输出

4                          NaT
14   2020-03-02 13:59:11+00:00

我可以理解没有updated_at第一个记录的字段,这就是抛出 NaT 的原因。

有没有办法可以用当前日期时间替换 NaT?

谢谢

标签: pythonpython-3.xpandas

解决方案


第一个想法是仅替换为Series.fillna,但因为不同的时区输出是对象:

result1 = result.fillna(pd.to_datetime('now'))
print (result1)
4     2020-03-13 10:33:10.557126
14     2020-03-02 13:59:11+00:00
Name: s, dtype: object

对于datetime带时区的 s 添加Timestamp.tz_localize

result2 = result.fillna(pd.to_datetime('now').tz_localize('utc'))
print (result2)
4    2020-03-13 10:33:10.559126+00:00
14          2020-03-02 13:59:11+00:00
Name: s, dtype: datetime64[ns, UTC]

推荐阅读