python - 将 Pandas 数据框中的所有 NaT 值更改为 Timedelta 00:00:00
问题描述
我在 Pandas 中有一个数据框,其中一列“timeOff”有一些 NaT 值。
我要做的就是将所有 NaT 值更改为 timeDelta 值,并以 '00:00:00' 作为值。
这是我当前的输出:
我试图运行这行代码:
replaceNaT = pd.to_timedelta('00:00:00')
print(replaceNaT)
startEndEventsDataframe['timeOff'] = np.where(pd.isnull(startEndEventsDataframe['timeOff']) == True, replaceNaT, startEndEventsDataframe['timeOff'])
但这会破坏我的数据框列中的所有值,如下所示:
我希望所有不是 NaT 的值都保持不变,并且我希望所有 NaT 的值都是 timeDelta,值为“00:00:00”。
谢谢您的帮助。
解决方案
所以,事实证明我是自己想出来的,但我想我会把解决方案发布给将来可能需要知道的任何人。
我去掉了“replaceNaT”,只是在找到 NaT 的地方写了“0”。我猜 timeDeltas 根据它们测量的最低时间分辨率存储为整数,并且仅在显示时转换为它们的样子?
无论如何,这是对我有用的代码更改:
startEndEventsDataframe['timeOff'] = np.where(pd.isnull(startEndEventsDataframe['timeOff']) == True, 0, startEndEventsDataframe['timeOff'])